私はC++には新しく、書籍とYouTubeで同時に作業していますが、解決策が見つからないという奇妙な問題があります。 私は基底クラス "母"から派生クラスの娘に継承しようとしていますが、それは私のために働いていません。C++で継承すると、{クラスの前に期待される{
このコードはTheNewBostonから取ってきました。私は、メインとクラスを追加しているクレジット
C:\CppProjects\inheritance\Daughter.h|6|error: expected class-name before '{' token
:
メイン:
#include <iostream>
#include "Mother.h"
#include "Daughter.h"
using namespace std;
int main()
{
Daughter t;
t.sayName();
}
マザークラス:
を#include "Mother.h"
#include <iostream>
#include "Daughter.h"
using namespace std;
Mother::Mother()
{
}
void Mother::sayName(){
cout<<"I am !!!"<<endl;
}
母ヘッダー:
#ifndef MOTHER_H
#define MOTHER_H
class Mother
{
public:
Mother();
void sayName();
};
#endif // MOTHER_H
娘のクラス:
#include "Daughter.h"
#include <iostream>
#include "Mother.h"
using namespace std;
Daughter::Daughter()
{
}
娘ヘッダー:
#ifndef DAUGHTER_H
#define DAUGHTER_H
class Daughter : public Mother
{
public:
Daughter();
};
#endif // DAUGHTER_H
私はここで検索のほとんどに見て、何も見つからなかった、I noobスタイルを試してstd ::を追加しましたが、wiには何もありませんそれを。
お気軽にお試しください。宣言の順序が重要である
#include <iostream>
using namespace std;
class Mother
{
public:
Mother();
void sayName(){
cout<<"I am!!!!"<<endl;
}
};
class Daughter: public Mother
{
public:
Daughter();
};
int main()
{
Daughter t;
t.sayName();
}
少なくとも、娘のヘッダーを含めると、Mother –
というクラスのものは何も分かっていませんか?それを修正する方法は? – shimon
定義が何をするか考えてみてください。 Daughter.cppでコンパイラが起動すると、何が表示されますか? Daughter.hへのリンクがあります。 「私は母から受け継いだ」というクラスがありますが、あなたは母が何であるかをコンパイラに知らせていません。だからあなたは最初に母の定義のためのインクルードを持っていなければなりません。順序は重要です。 –