zoukankan      html  css  js  c++  java
  • C++构造函数和析构函数

    1. 构造函数

    定义:每个类都分别定义了它的对象被初始化的方式,类通过一个或者几个特殊的成员函数来控制其对象的初始化过程,这些函数叫做构造函数。构造函数的任务是初始化类对象的数据成员,只要类的对象被创建,就会执行构造函数。

    1. 构造函数的名字和类名相同。
    2. 和其他函数不一样的是,构造函数没有返回类型。
    3. 类可以含有多个构造函数。
    4. 不同于其他成员函数,构造函数不能被声明为const的。当我们创建类的一个const对象时,直到构造函数完成初始化过程,对象才能真正取得其“常量”属性。

    合成的默认构造函数

    类通过一个特殊的构造函数来控制默认初始化过程,这个函数叫做默认构造函数。默认构造函数无需任何实参。
    编译器创建的默认构造函数将按照如下规则初始化类的数据成员:

    1. 如果存在类内的初始值,用它来初始化成员。
    2. 否则,默认初始化该成员。

    2. 析构函数

    定义:析构函数也是一个特殊的成员函数,没有返回值,不需要程序员显式调用,而是在销毁对象时自动执行。构造函数的名字和类名相同,而析构函数的名字是在类名前面加一个~符合。

    Note:析构函数没有参数,不能被重载,因此一个类只能有一个析构函数。如果用户没有定义,编译器会自动生成一个默认的析构函数。

    析构函数的执行时机

      1. 在所有函数之外创建的对象是全局对象,它和全局变量类似,位于内存分区中的全局数据区,程序在结束执行时会调用这些对象的析构函数。
      2. 在函数内部创建的对象是局部对象,它和局部变量类似,位于栈区,函数执行结束时会调用这些对象的析构函数。
      3. new创建的对象位于堆区,通过delete删除时才会调用析构函数;如果没有delete,析构函数就不会被执行。
  • 相关阅读:
    [sql查询] 重复数据只取一条
    SSIS,参数坑
    数据仓库之建立多维数据库
    数据仓库之SSIS开发
    开发规范
    页面以base64输出图片
    内嵌iframe
    T-Sql编程基础
    MVC3.0----整理之一
    原生JS 表单提交验证器
  • 原文地址:https://www.cnblogs.com/ganxiang/p/13053051.html
Copyright © 2011-2022 走看看