可能重复:
c++ 从构造函数调用构造函数
我有同一个类的两个构造函数,我希望其中一个构造函数将数据发送到第二个构造函数。
我知道如何在 C# 中做到这一点,但我是 C++ 新手,我不知道这是否可能像这样:
class a
{
public:
a (int x);
a (int x, int b, char g);
};
a :: a(int x) : this(x, 6, 'h')
{
}
可能重复:
c++ 从构造函数调用构造函数
我有同一个类的两个构造函数,我希望其中一个构造函数将数据发送到第二个构造函数。
我知道如何在 C# 中做到这一点,但我是 C++ 新手,我不知道这是否可能像这样:
class a
{
public:
a (int x);
a (int x, int b, char g);
};
a :: a(int x) : this(x, 6, 'h')
{
}
新的 C++11 标准支持此功能(称为委托构造函数)。语法如下:
a::a(int x) : a(x, 6, 'h') {}
如果您的编译器不支持新标准,则需要将常见行为提取到另一个初始化方法中并在构造函数主体中调用该方法。
在C++11中是可能的,但在早期版本中是不可能的。
通常,您可以尝试将常见的东西放入(非虚拟)成员函数中,然后从构造函数中调用它。虽然这不允许您初始化所有内容(仅在构造函数主体中执行的操作,而不是在序言中的初始化),但它仍然可能“总比没有好”。