这是情况。我在两个不同的文件中有两个类。
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 类的对象,Bh 已经包含在内。非常感谢你
这是情况。我在两个不同的文件中有两个类。
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 类的对象,Bh 已经包含在内。非常感谢你
将类定义B
放入头文件:
:
#ifndef H_B_CLASS
#define H_B_CLASS
class B
{
// member declarations
};
#endif
一个.cpp:
#include "a.h"
#include "b.h"
A::A() { B foo; /* ... */ }
b.cpp:
#include "b.h"
// B's member definitions
如果 class 中没有任何内容B
,则可以省略b.cpp
并将整个类定义放入头文件中。
如您所说,如果B
完全为空,则没有可用的公共默认构造函数。您必须至少定义B()
为 的公共成员class B
,否则没有人可以构造它。