关于c ++:从不同的构造函数传递参数到类构造函数?

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},但在较早版本中不可能。

通常,您可以尝试将常见的东西放入(非虚拟)成员函数中,并从构造函数调用它。虽然这不允许初始化所有内容(只允许在构造函数主体中执行的操作,而不允许在序言中初始化),但它可能仍然"总比什么都没有好"。