遵循本教程(https://www.youtube.com/watch?v=gq2Igdc-OSI&index=52&list=PLAE85DE8440AA6B83)我在Visual Studio C ++ 2017上遇到了4个错误。其中3个是同一个错误,只是重复母亲&#39 ;:在base.h中未定义的基类文件。另一个错误是:' sayName'不是“女儿”的成员。现在这里是代码。我希望程序打印非常简单...我希望它打印出两行"你在那里做什么?"如果你能帮我解决这个问题,那就太好了。谢谢。 对于主文件 `#include" stdafx.h" #包括 #包括" Daughter.h" #包括" Mother.h" 使用namespace 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()
{
}
答案 0 :(得分:1)
当一个类继承另一个类时,它必须在其标题中包含父类标题。在您的情况下,您必须在子标题的顶部添加#include "Mother.h"
(不仅仅是在.cpp文件中)。另一个错误正在发生,因为第一个错误并且纠正它应该解决它。
当您编写继承语法class Daughter : public Mother
时,由于多种原因,子类定义需要访问有关其父类的信息。其中之一是有关继承方法的信息,这导致了第二次错误。