不确定如何修复;非静态成员参考必须相对于特定对象

Unsure how to fix; a nonstatic member reference must be relative to a specific object

本文关键字:相对于 对象 参考 何修复 静态成员 不确定      更新时间:2023-10-16

我当前正在学习构图,并且陷入了这个问题

我不确定如何修复"非静态成员参考必须相对于特定对象",我一直在得到

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

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

i收到错误消息"非静态成员参考必须相对于特定对象"在时间=时间=时间(粗体"时间"是在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 )
{ //...
}

与我当前知道的有关此错误的其他线程似乎更为复杂

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

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