Базовый класс не определен. Ошибка C2504

После этого урока (https://www.youtube.com/watch?v=gq2Igdc-OSI&Индекс = 52&список = PLAE85DE8440AA6B83) Я столкнулся с 4 ошибками в Visual Studio C ++ 2017. 3 из них — это одно и то же, и просто повторяется «Мать»: базовый класс не определен в файле daughter.h. Другая ошибка гласит: «sayName» не является членом «Daughter». Теперь вот код. Это довольно просто, что я хочу, чтобы программа печатала … Я хочу, чтобы она напечатала две строки «Что ты там делаешь?» Если бы вы могли помочь мне с этим ответом, это было бы здорово. Спасибо.
Для основного файла
`#include» stdafx.h «#include
#include «Daughter.h» #include «Mother.h» с использованием пространства имен std;

int main()
{
Mother pot;
pot.sayName();
Daughter kettle;
kettle.sayName();
int pause = 0;
cin >> pause;
}

Mother.h
#ifndef MOTHER_H
#define MOTHER_H

class Mother
{
public:
Mother();
void sayName();

};

#endif
Mother.cpp
#include "stdafx.h"#include<iostream>
#include"Daughter.h"#include"Mother.h"using namespace std;

Mother::Mother()
{
}
void Mother::sayName() {
cout << "What are you doing there?" << endl;

}
Daughter.h
#ifndef DAUGHTER_H
#define DAUGHTER_H

class Daughter:public Mother
{
public:
Daughter();
};
#endif
Daughter.cpp
#include "stdafx.h"#include<iostream>
#include"Daughter.h"#include"Mother.h"using namespace std;

Daughter::Daughter()
{
}

2

Решение

Когда класс наследует другой, он должен включать заголовок родительского класса в свой заголовок. В вашем случае вы должны добавить #include "Mother.h" в верхней части дочернего заголовка (не только в файле .cpp). Другая ошибка происходит из-за первой, и исправление должно решить ее.

Когда вы пишете синтаксис наследования class Daughter : public Motherопределение класса Daughter должно иметь доступ к информации о родительском классе по нескольким причинам. Одним из них является информация о унаследованных методах, которая стала причиной вашей второй ошибки.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]