私は、クラスメンバのポインタとポインタを返すメソッドを実装しようとしていますが、コンパイル時に "syntax error:missing ';' '*' の前に」と "型指定が欠落 - 仮定int型注:
MAIN.CPP:C++クラスメソッドは、ユーザ定義のクラスインスタンスへのポインタを返します
#include "AClass.h"
#include "BClass.h"
int main (int argc, const char* argv[])
{
AClass a;
BClass b;
return 0;
}
AClass.h C++は、デフォルト-INT" エラーをサポートしていません
ここでコードは次のとおりです。
#ifndef ACLASS_H
#define ACLASS_H
#include "BClass.h"
class AClass
{
public:
BClass* getB();
void setB (BClass* inst);
private:
BClass* b;
};
#endif
BClass.h:
#ifndef BCLASS_H
#define BCLASS_H
#include "AClass.h"
class BClass
{
public:
AClass* getA();
void setA (AClass* inst);
private:
AClass* a;
};
#endif
私も具体化していないOU t cppファイルのクラスと私はエラーの文字列を取得: 私はC + +ファイルを作成し、すべてを定義するかどうかは関係ありません、これらのエラーが残ります。
1>------ Build started: Project: memberUDFpointers, Configuration: Debug Win32 ------
1> Main.cpp
1>e:\documents\cpp projects\memberudfpointers\memberudfpointers\bclass.h(9): error C2143: syntax error : missing ';' before '*'
1>e:\documents\cpp projects\memberudfpointers\memberudfpointers\bclass.h(9): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>e:\documents\cpp projects\memberudfpointers\memberudfpointers\bclass.h(9): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>e:\documents\cpp projects\memberudfpointers\memberudfpointers\bclass.h(9): warning C4183: 'getA': missing return type; assumed to be a member function returning 'int'
1>e:\documents\cpp projects\memberudfpointers\memberudfpointers\bclass.h(10): error C2061: syntax error : identifier 'AClass'
1>e:\documents\cpp projects\memberudfpointers\memberudfpointers\bclass.h(12): error C2143: syntax error : missing ';' before '*'
1>e:\documents\cpp projects\memberudfpointers\memberudfpointers\bclass.h(12): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>e:\documents\cpp projects\memberudfpointers\memberudfpointers\bclass.h(12): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
私は多くの異なる投稿をすべて見てきましたが、まだ私の頭を傷つけています。 誰かが私に手がかりを与えることができますか?
あなたは円形の包含物を持っています。 '#include'の代わりにヘッダーに前方宣言を使用してください。 – ildjarn
循環依存、前方宣言;それはあなたを始めるはずです。 – Nim
[C++の循環依存関係]の重複可能性があります(http://stackoverflow.com/questions/4018816/circular-dependency-in-c) –