2

この問題 Symbol 'A' could not be resolve in file Bh があり、C/C++ 開発者向けに Eclipse IDE を使用しています。

//B.h file

#ifndef __B_H__
#define __B_H__

#include "A.h"



class B:  public cs::A{

};

#endif

Ahファイルを含む:

//A.h file

#ifndef A_H_
#define A_H_
namespace cs{
class A {


};
}

#endif

ここで何が欠けていますか?

4

3 に答える 3

5

クラスAを名前空間内に配置しました。使用中は名前空間の解決を維持する必要があります。

class B:  public cs::A{

};

または

//B.h file

#ifndef __B_H__
#define __B_H__

#include "A.h"

using namespace cs;

class B:  public A{

};

#endif

これは推奨されません (Als のコメントを確認してください)。

また、これを行うと、使用するたびに名前空間全体の修飾を保持することA(最初のソリューションで行う必要があります) と、usingすべての名前空間の両方を回避できます。

//B.h file

#ifndef __B_H__
#define __B_H__

#include "A.h"

using cs::A;

class B:  public A{

};

#endif
于 2012-05-05T10:41:09.750 に答える
3
class B: public cs::A{ };
                ^^^^^^ 

class の完全修飾名を指定する必要がありますA

クラスAは名前空間内で定義されるため、名前空間修飾なしcsで使用することはできないことに注意してください。A

于 2012-05-05T10:40:27.610 に答える
0

名前空間 cs を使用しています。クラス B を宣言するときは、これを再度使用することを忘れないでください。

//B.h file

#ifndef __B_H__
#define __B_H__

#include "A.h"


class B:  public cs::A{

};

#endif
于 2012-05-05T10:42:27.087 に答える