我有一个类,我为它创建一个构造函数“A”。然后我用构造函数“B”创建另一个类。如何从不同类的构造函数中调用构造函数“B”,即使用c ++语言的“A”?
答案 0 :(得分:2)
如果A
继承自B
,则可以从A
的构造函数调用基类构造函数。在C ++ 11中,您可以更灵活地使用它,您可以使用委托构造函数。否则,这个问题没有多大意义。
构造函数是一种特殊的函数,仅在创建新对象时调用。除非你这样做,否则你不能调用它,通常你想要创建一个新对象时调用构造函数 - 调用构造函数不是你的目标,获取新对象是。
答案 1 :(得分:1)
在作为对象变量本身的类的C ++成员或字段中,编译器会自动调用它们的构造函数,当类被实例化时,它就是它自己的构造函数被称为。在C ++中实例化对象的顺序是这样的,首先调用基类构造函数,然后调用成员变量,然后调用最派生类,这是你的类。
答案 2 :(得分:1)
这将符合您的目的。
class A {
public:
A(){
//your code
}
};
class B{
public :
B():A(){
//your code
}
};
答案 3 :(得分:1)
如果两个类都不在父子关系中,那么你可以将A类写成B.以下是一个例子。
class B{
public:
B(){
cout<<"Class B constructor"<<endl;
}
};
class A{
B pbj;
public:
A(){
cout<<"Class A Constructor"<<endl;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
A obj1;
return 0;
}