Passing arguments to the class constructor from a different constructor?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
c++ call constructor from constructor
我有两个同一类的构造函数,我希望其中一个构造函数将数据发送给第二个构造函数。
我知道如何用C语言来做,但是我对C++是新的,我不知道这是否可能是这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 | class a { public: a (int x); a (int x, int b, char g); }; a :: a(int x) : this(x, 6, 'h') { } |
新的C++ 11标准支持这个特性(称为委托构造函数)。语法就像:
1 | a::a(int x) : a(x, 6, 'h') {} |
如果编译器不支持新标准,则需要将公共行为提取到另一个初始化方法中,并在构造函数体中调用该方法。
在{HeRF= ="http://eN..gor/wik/c%2b%2b11y·bObjtObjultOrgultOp改进"Re="NoFoLoLy"> C++ 11 {AA},但在较早版本中不可能。
通常,您可以尝试将常见的东西放入(非虚拟)成员函数中,并从构造函数调用它。虽然这不允许初始化所有内容(只允许在构造函数主体中执行的操作,而不允许在序言中初始化),但它可能仍然"总比什么都没有好"。