【c++ 构造函数和析构函数】
c++ 构造函数和析构函数
1. 构造函数
1.1 构造函数的性质
- 没有返回值
- 不用写void
- 构造函数可以有参数,可以发生重载
1.2 构造函数的类型
- 默认构造函数
- 参数构造函数
- 拷贝构造函数
1.3 拷贝构造函数调用时机
1.3.1 默认构造函数调用时机
- 创造对象的时候,不传参数,构造函数会自动调用,而且只调用一次
1.3.2 拷贝构造函数调用时机
- 使用一个已经创建完的对象来初始化一个新对象
- 值传递的方式给函数参数传值
- 以值方式返回局部对象
1.3.3 参数构造函数调用时机
- 创造对象的时候,传入参数,构造函数会自动调用,而且只调用一次
1.4 构造函数的调用规则
默认情况下,c++编译器至少给一个类添加3个参数:
- 默认构造函数(无参,函数体为空)
- 默认析构函数(无参,函数体为空)
- 默认拷贝构造函数,对属性进行值拷贝
构造函数调用规则如下:
- 如果用户定义有参构造函数,c++ 不在提供默认无参构造 但是会提供默认拷贝构造
- 如果用户定义拷贝构造函数,c++ 不会再提供其他构造函数
2. 析构函数
- 没有返回值
- 不用写void
- 析构函数不可以有参数,不可以发生重载
- 对象销毁前会调用析构函数,而且只调用一次
【c++ 构造函数和析构函数】相关推荐
- C++ 笔记(17)— 类和对象(构造函数、析构函数、拷贝构造函数)
1. 构造函数 构造函数是一种特殊的函数(方法),在根据类创建对象时被调用.构造函数是一种随着对象创建而自动被调用的函数,它的主要用途是为对象作初始化. 构造函数的名称与类的名称是完全相同的,并且不会 ...
- php构造和析构方法,php5构造函数与析构函数实例
自php5起,有了构造函数与析构函数. 这使得php更富有面向对象的魅力了. 在php4时,构造函数用的是与类同名的函数来进行构造这个动作. 例如: 复制代码 代码示例: /* * myclass.p ...
- 提高C++性能的编程技术笔记:构造函数和析构函数+测试代码
对象的创建和销毁往往会造成性能的损失.在继承层次中,对象的创建将引起其先辈的创建.对象的销毁也是如此.其次,对象相关的开销与对象本身的派生链的长度和复杂性相关.所创建的对象(以及其后销毁的对象)的数量 ...
- c++, 派生类的构造函数和析构函数 , [ 以及operator=不能被继承 or Not的探讨]
说明:文章中关于operator=实现的示例,从语法上是对的,但逻辑和习惯上都是错误的. 参见另一篇专门探究operator=的文章:<c++,operator=>http://www.c ...
- C++中的构造函数VS析构函数
1.构造函数 类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行.构造函数的名称与类的名称的完全相同的,并且不会返回任何数据类型,也不会返回void.构造函数用于为某些成员变量设置初 ...
- 多继承的构造函数和析构函数
//程序2:多继承的构造函数 与 析构函数 #include<iostream> using namespace std;class A { public: A() { cout<& ...
- c++ 构造函数析构函数 数据安全_C++知识点 16:构造函数和析构函数的语法
#define _CRT_SECURE_NO_WARNINGS #include using namespace std;// 创建一个类( 类内包括: 2个构造函数,一个析构函数) class Pe ...
- 多重继承的构造函数和析构函数
多重继承的构造函数和析构函数的执行顺序: //此处不做注释和说明了,看程序能读懂的 #include <iostream> using namespace std; class base1 ...
- C++中构造函数和析构函数
[注]致力于将知识讲明白!不懂请留言! 构造函数 定义 它是一种特殊的方法.主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中. 另外,一个类可以有 ...
- c++ map 析构函数_C++学习刷题6--C++类的使用:构造函数、析构函数和类的使用
一.前言 本部分为C++语言刷题系列中的第4节,主要讲解这几个知识点:构造函数.析构函数和类的使用.欢迎大家提出意见.指出错误或提供更好的题目! 二.知识点讲解 由以前知识可知,类的实现中包含成员变量 ...
最新文章
- mysql 设置事物自动提交_mysql事务自动提交的问题
- Android接收短信
- 一个博友的SQL问题解决过程
- 数组类型和多维数组的本质
- oracle数据库第十一章答案,[转载]《互联网数据库》网上作业练习题10-11章答案...
- 28个数控编程代码大全,众多程序员呕心沥血的私货
- 用IDM快速下载百度云文件
- 短视频发布之前要注意什么?从配音到发布时间,选对才能吸粉引流
- 8/30 Hourglass网络原理
- 嵌入式:ARM相关开发工具概述
- TeKtronix TDS210数字示波器说明书
- POJ1753(枚举)
- 惯性室内导航入门到精通(3)-计步算法
- 黑马程序员前端实战项目---PC端品优购(下)
- 创维YS代工E900V21E/TY1608-S905l3B-8822CS及7668无线通刷线刷包
- Essentially No Barriers in Neural Network Energy Landscape
- 未明学院:大学生如何增强自己的知识储备?要是读书时知道这些就好了!
- 公众号seo排名优化技术,公众号名称优化排名
- 图像视频大数据产业技术创新联盟成立
- 【IoT】加密与安全:NFC 读写 IC 卡以及密码安全验证