从不同类的构造函数中调用构造函数

时间:2015-09-07 03:32:39

标签: c++ object-oriented-analysis

我有一个类,我为它创建一个构造函数“A”。然后我用构造函数“B”创建另一个类。如何从不同类的构造函数中调用构造函数“B”,即使用c ++语言的“A”?

4 个答案:

答案 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;
}