所以我有一个类,其构造包含成员初始化器,如下所示:
class aClass
{
public:
//Functions
aClass(int sVal1, float sVal2, float sVal3,float sVal4); //Constructor
~aClass(); //Destructor
private:
int someValue;
float sSomeValue;
float tSomeValue;
float fSomeValue;
};
在类的.cpp文件中看起来像这样的构造函数:
NPC::NPC(int sVal1, float sVal2, float sVal3, float sVal4)
:someValue(sVal1), sSomeValue(sVal2), tSomeValue(sVal3), fSomeVlaue(sVal4)
{
}
我的问题是:如果我要在另一个类头文件中将此类的实例声明为私有变量,那么声明的语法是什么?
答案 0 :(得分:1)
在另一个班级'标题你有类似的东西:
class anotherClass {
public:
anotherClass();
anotherClass(int sVal1, float sVal4);
...
private:
aClass mya;
};
当然,当您使用aClass
时,您还需要包含第一个类的标题。
在你的cpp中你会初始化这样的事情:
anotherClass::anotherClass()
: mya(0,0,0,0) {} // as aClass has no default constructor,
// you must always make sure the init list provides for mya
anotherClass::anotherClass(int sVal1, float sVal4)
: mya(sVal1, 0, 0, sVal4) {}
备注:由于aClass
没有默认构造函数,因此必须确保在anotherClass
初始化列表中对其进行初始化。