Не знаете, как это исправить; ссылка на нестатический член должна относиться к определенному объекту - PullRequest
1 голос
/ 14 марта 2019

Я сейчас изучаю композицию и застрял в этой проблеме

Я не уверен, как исправить ошибку "ссылка на нестатический элемент должна быть связана с конкретным объектом", которую я продолжаю получать

Мне не разрешено изменять main () любым способом

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

Я получаю сообщение об ошибке "ссылка на нестатический элемент должна относиться к определенному объекту" в Time = time (выделено жирным шрифтом "time"где он выделен красным цветом в Visual C ++)

Я считаю, что ошибка связана с композицией с Time time, но я не уверен

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 Ответ

1 голос
/ 14 марта 2019

Измените Time = time на Time timeobject или другое имя.Компилятор интерпретирует значение по умолчанию time как переменную-член time.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...