Rea*_*eal 1 c++ overloading initialization default-constructor
我需要知道如何让事情发挥作用.我有一个带有构造函数的类,并在初始化列表中初始化了一些常量.我想要的是能够创建一个不同的构造函数,它需要一些额外的参数,但仍然使用初始化列表.像这样:
class TestClass
{
const int cVal;
int newX;
TestClass(int x) : cVal(10)
{ newX = x + 1; }
TestClass(int i, int j) : TestClass(i)
{ newX += j; }
}
Run Code Online (Sandbox Code Playgroud)
完全可怕的例子,但它得到了重点.问题是,我如何让这个工作?
一个构造函数无法委托给同一个类的另一个构造函数.您可以将公共代码重构为静态成员函数,但后者无法初始化字段,因此您必须在每个构造函数中重复字段初始化程序.如果特定字段初始值设定项具有计算值的复杂表达式,则可以将其重构为静态成员函数,以便可以在所有构造函数中重用它.
这是一个众所周知的不便,并且将在C++ 0x中提供委托给另一个构造函数的方法.
| 归档时间: |
|
| 查看次数: |
2495 次 |
| 最近记录: |