2016-02-14 87 views
-2

我已经创建了两个类A和B,所以我有5个文件,main.cpp中,阿,A.cpp,BH,B.cpp错误:没有指定类型

我已经包括了所有的标题因为它应该是和即时尝试创建类B类中的对象,我得到以下错误:错误:A不命名类型

如果我对它重复像我在类中定义对象B它的工作原理,,,最新错了?

这是我B.h看起来像>

#ifndef B_H 
#define B_H 

#include <iostream> 
#include "A.h" 

using namespace std; 
class B 
{ 
    public: 
     B(); 
    protected: 
    private: 
     A instance; 

}; 

#endif // B_H 

现在A.H

#ifndef A_H 
#define A_H 

#include <iostream> 
#include "B.h" 

using namespace std; 
class A 
{ 
    public: 
     A(); 
    protected: 
    private: 
}; 

#endif // A_H 
+1

你为什么在'B.H'中加入'B.H'? –

+0

对不起没有注意到我只是复制粘贴所有,nvm im gona编辑它,但它不会改变任何东西 – TheBestBoss

+0

事情检查:1.在另一个文件中的警卫(它是否也是'#ifndef B_H'?),2。其他文件包括这一个。 –

回答

2

B.h包括A.hA.h包括B.h。这导致你像B.h包括B.h

A.h删除include "B.h"。它没有使用。

+0

@TheBestBoss,如果有答案解决了您的问题,请单击分数下方的灰色刻度以将其标记为答案。 –

0

让我们来看A.h:

首先它包括B.h.这引入了使用类A的类B的定义。接下来它定义了类A.存在这个问题。正如其他人所说的删除未使用的包含将解决问题。

+0

看看你的评论上面的例子有什么不对? – TheBestBoss