我目前正在学习写作,并且在这个问题上陷入困境
我不确定如何解决我不断收到的“非静态成员引用必须相对于特定对象”错误
我不允许以任何方式修改main()
int main()
{
Time t(23, 59, 58);
Date d(12, 31, 2017, t);
// ...
}
我在时间= time收到错误消息“非静态成员引用必须相对于特定对象”(在视觉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 )
{ //...
}
与我目前所知道的相比,我阅读的有关此错误的其他线程似乎更复杂
任何有关如何解决此错误的建议将不胜感激
答案 0 :(得分:1)
将Time = time
更改为Time timeobject
或其他名称。编译器将默认值time
解释为成员变量time
。