引用类中的另一个类

时间:2012-09-10 00:15:52

标签: c++

情况如下。我在两个不同的文件中有两个类。

A.cpp:

#include "B.h" 
A::A(){
B foo; //B doesn't name a type
}

B.cpp:

Class B{
//code
};

如何在A的构造函数中正确构造B的对象?(范围问题)我试过

B::B foo //wrong

为什么我不能像上面那样直接构造B类的对象,B.h已被包括在内。非常感谢你

2 个答案:

答案 0 :(得分:3)

B的类定义放入头文件中:

<强> b.h:

#ifndef H_B_CLASS
#define H_B_CLASS

class B
{
    // member declarations
};

#endif

<强> a.cpp:

#include "a.h"
#include "b.h"

A::A() { B foo; /* ... */ }

<强> b.cpp:

#include "b.h"

// B's member definitions

如果类B中没有任何内容,则可以省略b.cpp并将整个类定义放入头文件中。

答案 1 :(得分:0)

如果B完全为空,如您所说,则没有可用的公共默认构造函数。您必须至少将B()定义为class B的公共成员,否则无人可以构建它。