• 构造和析构的次序


    构造和析构的次序

    构造从类层次的最根处开始,在每一层中,首先调用基类的构造函数,然后调用成 员对象的构造函数。析构则严格按照与构造相反的次序执行,该次序是唯一的,否则编 译器将无法自动执行析构过程。

    一个有趣的现象是,成员对象初始化的次序完全不受它们在初始化表中次序的影响 , 只由成员对象在类中声明的次序决定。

    这是因为类的声明是唯一的,而类的构造函数可 以有多个,因此会有多个不同次序的初始化表。如果成员对象按照初始化表的次序进行 构造,这将导致析构函数无法得到唯一的逆序。

     1 #include <iostream>
     2 
     3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
     4 using namespace std;
     5 int main(int argc, char** argv) {
     6      //自定义类型 
     7     typedef  int  ARRAY_INT[50];
     8     int i;
     9     ARRAY_INT a;    //用自定义类型声明数组变量a 
    10 
    11     //以下为数组a赋值,并打印  
    12     for (i=0;i<50;i++) {
    13        if (i%10==0)       //每10个数换一次行 
    14          cout<<endl;
    15        a[i]=i;
    16        cout<<a[i]<<"	";
    17      }
    18     cout<<endl;
    19     return 0;
    20 }
  • 相关阅读:
    通过使用 SQL,可以为列名称和表名称指定别名(Alias)
    BETWEEN 操作符
    IN 操作符
    SQL 通配符
    LIKE 操作符
    TOP 子句
    DELETE 语句
    Update 语句
    INSERT INTO 语句
    IOS SWIFT 网络请求JSON解析 基础一
  • 原文地址:https://www.cnblogs.com/borter/p/9406551.html
Copyright © 2020-2023  润新知