使用特殊成员函数初始化

本节描述了使用特殊成员函数的初始化。 它展开了针对初始化的以下讨论:

  • 正在初始化聚合,描述了如何初始化非类类型的数组和简单类类型的对象。 这些简单类类型不能具有私有或受保护成员,并且它们不能拥有基类。

  • 构造函数,说明如何使用特殊构造函数来初始化类类型对象。

初始化的默认方法是执行从初始值设定项到要初始化的对象的按位复制。 此技术仅适用于:

  • 内置类型的对象。 例如:

    int i = 100;
    
  • 指针。 例如:

    int i;
    int *pi = &i;
    
  • 引用。 例如:

    String sFileName( "FILE.DAT" );
    String &rs = sFileName;
    
  • 类类型的对象,其中类没有私有或受保护的成员、虚函数和基类。 例如:

    // spec1_special_member_functions.cpp
    // compile with: /LD
    struct Point
    {
        int x, y;
    };
    
    Point pt = { 10, 20 };   // Static storage class only
    

类可以通过定义构造函数来指定更完善的初始化。(有关声明这些函数的详细信息,请参阅构造函数。)如果对象是具有构造函数的类类型,则必须初始化该对象,或者必须有默认构造函数。 未专门初始化的对象将调用类的默认构造函数。

请参见

参考

特殊成员函数 (C++)