首页 > 编程语言 > 详细

C++基础知识:构造与析构

时间:2017-02-27 23:05:37      阅读:242      评论:0      收藏:0      [点我收藏+]

1.构造函数的定义:

C++中的类可以定义与类名相同的特殊成员函数
这种与类名相同的成员函数叫做构造函数
构造函数在定义时可以有参数,但是没有任何返回类型的声明

技术分享

2.构造函数的调用:

一般情况下C++编译器会自动调用构造函数
在一些情况下则需要手工调用构造函数

技术分享

3.两个特殊的构造函数:
无参构造函数
  当类中没有定义构造函数时,编译器默认提供一个无参构造函数,并且其函数体为空
拷贝构造函数
  当类中没有定义拷贝构造函数时,编译器默认提供一个拷贝构造函数,简单的进行成员变量的值复制

4.初始化列表

C++中提供了初始化列表对成员变量进行初始化
语法规则
Constructor::Contructor() : m1(v1), m2(v1,v2), m3(v3)
{
    // some other assignment operation
}

注意:   成员变量的初始化顺序与声明的顺序相关,与在初始化列表中的顺序无关
    初始化列表先于构造函数的函数体执行

5.析构函数

C++中的类可以定义一个特殊的成员函数清理对象
这个特殊的成员函数叫做析构函数
定义:~ClassName()
析构函数没有参数也没有任何返回类型的声明
析构函数在对象销毁时自动被调用

技术分享

6.构造函数与析构函数的调用秩序
当类中有成员变量是其它类的对象时
首先调用成员变量的构造函数
调用顺序与声明顺序相同
之后调用自身类的构造函数
析构函数的调用秩序与对应的构造函数调用秩序相反

7.“剥夺”编译器对构造函数的调用尝试
C++提供了explicit关键字用于阻止编译器对构造函数的调用尝试

技术分享

 

C++基础知识:构造与析构

原文:http://www.cnblogs.com/blogs-of-lxl/p/6476619.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!