不确定如何修复;非静态成员引用必须与特定对象相关

问题描述 投票:1回答:1

我目前正在学习作文,并坚持这个问题

我不知道如何修复“非静态成员引用必须相对于特定对象”错误我不断得到

我不允许以任何方式修改main()

int main()
{
     Time t(23, 59, 58);
     Date d(12, 31, 2017, t);
 // ...
}

我在时间=时间收到错误消息“非静态成员引用必须相对于特定对象”(粗体“时间”是在visual c ++中以红色下划线的位置)

我认为错误与时间时间的构图有关,但我不确定

class Date
{
public:
    explicit Date( int = 1, int = 1, int = 1900, Time = **time**); 
    // ...
private:
    Time time;
    // ...
}

生成器数据

Date::Date( int mn, int dy, int yr, Time timeObject)
: time{ timeObject }
 // ...

时间等级

class Time
{
public:
    explicit Time( int = 0, int = 0, int = 0 );
    // ...
private:
    int hour;
    int minute;
    int second;
}

时间构造函数

Time::Time( int hour, int minute, int second )
{ //...
}

与我目前所知的相比,我读过的关于这个错误的其他主题似乎更复杂

任何关于如何解决此错误的建议将不胜感激

c++ c++11 visual-c++
1个回答
1
投票

Time = time更改为Time timeobject或其他名称。编译器将默认值time解释为成员变量time

© www.soinside.com 2019 - 2024. All rights reserved.