親属性、として含まれています:C++。子が親から継承され、のようなOlderSonは親から継承し、親が自分のOlderSonへのポインタを持って、私は非常に単純な親子関係を持っている
#ifndef PARENT_HXX
#define PARENT_HXX
#include <iostream>
#include <string>
//#include "OlderSon.hxx"
class OlderSon;
class Parent
{
private :
OlderSon* _os;
public :
int _age;
std::string _name;
Parent(){
_name="parent name";
_age=60;
//OlderSon* _os=new OlderSon();
}
};
#endif //PARENT_HXX
と息子:
#ifndef OLDERSON_HXX
#define OLDERSON_HXX
#include <iostream>
#include <string>
#include "Parent.hxx"
class OlderSon: public Parent
{
public:
OlderSon(){
_age=25;
_name="Olderson name";
}
};
#endif //OLDERSON_HXX
私はポインタがOlderSon* _os=new OlderSon();
初期化された行のコメントを解除しようとするたびしかし、私はエラーメッセージを取得:
Parent.hxx: In constructor ‘Parent::Parent()’:
Parent.hxx:25:31: error: invalid use of incomplete type ‘struct OlderSon’
Parent.hxx:8:7: error: forward declaration of ‘struct OlderSon’
を
私はさまざまな方法で試しました。すなわち、.hxxと前方宣言の両方を含んでいましたが、何も助けてくれないようです。私はそれが非常に複雑な問題ではないと思うが、それはイライラし始めている。
アイデアをお探しですか?
ありがとうございます!
あなたの息子は親ですか?多分あなたは 'Person'基底クラスを持たなければならず、Personインスタンスを他の' Person'インスタンスと '組み合わせて'ファミリを作るようにしてください。 – Dennis
こんにちは、今あなたはそれが息子の概念を指摘する/親は多くの意味をなしません。しかし、私はSon/Parentに名前を変更して、より明確に説明しようとしました。実際、これらのクラスはFactoryメソッドの一部です。ゲーム内に新しいキャラクターと新しいアイテムの両方を作りたいと思っています。私は 'ObjectFactory'(親として)を作成しました。これは、ITEMやCHARACTERを作りたいと思っています。 'ItemFactory'の属性となる' ItemFactory'と 'CharacterFactory'の2つのサブクラスです。その場合に応じて、 'ItemFactory'または' CharacterFactory'の '.createObject(...) 'を使用します。 – lllllll
何もフィルタリングする必要はありません。 ObjectFactoryは抽象型でなければならず、ユーザーが項目を作成したい場合は、ItemFactoryを使用するだけです。 – Dennis