C++ 在类声明中使用参数初始化类
在我的对象状态中,我想要对象pq。但是pq需要用一个参数初始化。有没有办法将依赖于参数的类包含到另一个类中 文件.h file.ccC++ 在类声明中使用参数初始化类,c++,class,constructor,C++,Class,Constructor,在我的对象状态中,我想要对象pq。但是pq需要用一个参数初始化。有没有办法将依赖于参数的类包含到另一个类中 文件.h file.cc State::State(classbb3):b2(b3){} 您可以在初始值设定项列表中对其进行初始化,就像使用b2一样: State::State(ClassB b3) : b2(b3), pq(b2) {} 请记住,成员是按照头文件中声明的顺序初始化的,而不是按照初始值设定项列表中初始值设定项的顺序初始化的 您还需要删除在标头中初始化它的尝试: class
State::State(classbb3):b2(b3){}
您可以在初始值设定项列表中对其进行初始化,就像使用
b2
一样:
State::State(ClassB b3) : b2(b3), pq(b2) {}
请记住,成员是按照头文件中声明的顺序初始化的,而不是按照初始值设定项列表中初始值设定项的顺序初始化的
您还需要删除在标头中初始化它的尝试:
class Pq
{
int a;
Pq(ClassB b);
};
class State
{
ClassB b2;
Pq pq;
State(ClassB b3);
};
您可以在初始值设定项列表中对其进行初始化,就像使用
b2
一样:
State::State(ClassB b3) : b2(b3), pq(b2) {}
请记住,成员是按照头文件中声明的顺序初始化的,而不是按照初始值设定项列表中初始值设定项的顺序初始化的
您还需要删除在标头中初始化它的尝试:
class Pq
{
int a;
Pq(ClassB b);
};
class State
{
ClassB b2;
Pq pq;
State(ClassB b3);
};
阶级国家{
公众:
状态(ClassB&bref):b2(bref),pq(b2){}//取决于声明对象的顺序
//私人/公共/受保护
私人:
B类b2;
Pq-Pq;
};
在上面的代码中,您必须在初始化列表中保持该顺序,否则您将得到意想不到的结果。因此非常危险
Class State{
public:
State(ClassB& bref):b2(bref),pq(b2){} // Depends on the order you declare objects
// in private/public/protected
private:
ClassB b2;
Pq pq;
};
阶级国家{
公众:
状态(ClassB&bref):b2(bref),pq(b2){}//取决于声明对象的顺序
//私人/公共/受保护
私人:
B类b2;
Pq-Pq;
};
在上面的代码中,您必须在初始化列表中保持该顺序,否则您将得到出乎意料的结果。因此风险很大