使用委托构造函数完成对象和初始化

时间:2014-08-19 04:49:34

标签: c++ constructor

我对委托构造函数有一个误解。委托构造函数定义如下(12.6.2 / 6 N3797):

  

mem-initializer-list可以委托给另一个构造函数   构造函数的类使用表示的任何class-ordecltype   构造函数的类本身。

和12.6.2 / 8:

  

对类X的构造函数的调用完成后,如果是成员   在执行期间,X既未初始化也未给出值   构造函数体的复合语句,成员有   不确定的价值。

也就是说,在完成一个构造函数体的执行后,X就完成了。在委托构造函数的情况下,如下所示:

#include <iostream>

using std::cout;
using std::endl;

struct A
{
    A(int)    
    {
        cout << "A(int)" << endl;
    }

    A() : A(4)
    {
        cout << "A()" << endl;
    }
};

A a;

int main()
{

}

demo

对象a是否已完成A(int)正文已完成或A()正文完成后是否已完成?

0 个答案:

没有答案