不确定如何解决;非静态成员引用必须相对于特定对象

时间:2019-03-14 04:41:04

标签: c++ c++11 visual-c++

我目前正在学习写作,并且在这个问题上陷入困境

我不确定如何解决我不断收到的“非静态成员引用必须相对于特定对象”错误

我不允许以任何方式修改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 )
{ //...
}

与我目前所知道的相比,我阅读的有关此错误的其他线程似乎更复杂

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

1 个答案:

答案 0 :(得分:1)

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