c++ 构造函数和析构函数

1. 构造函数

1.1 构造函数的性质

  • 没有返回值
  • 不用写void
  • 构造函数可以有参数,可以发生重载

1.2 构造函数的类型

  1. 默认构造函数
  2. 参数构造函数
  3. 拷贝构造函数

1.3 拷贝构造函数调用时机

1.3.1 默认构造函数调用时机

  • 创造对象的时候,不传参数,构造函数会自动调用,而且只调用一次

1.3.2 拷贝构造函数调用时机

  • 使用一个已经创建完的对象来初始化一个新对象
  • 值传递的方式给函数参数传值
  • 以值方式返回局部对象

1.3.3 参数构造函数调用时机

  • 创造对象的时候,传入参数,构造函数会自动调用,而且只调用一次

1.4 构造函数的调用规则

默认情况下,c++编译器至少给一个类添加3个参数:

  • 默认构造函数(无参,函数体为空)
  • 默认析构函数(无参,函数体为空)
  • 默认拷贝构造函数,对属性进行值拷贝

构造函数调用规则如下:

  • 如果用户定义有参构造函数,c++ 不在提供默认无参构造 但是会提供默认拷贝构造
  • 如果用户定义拷贝构造函数,c++ 不会再提供其他构造函数

2. 析构函数

  • 没有返回值
  • 不用写void
  • 析构函数可以有参数,可以发生重载
  • 对象销毁前会调用析构函数,而且只调用一次

【c++ 构造函数和析构函数】相关推荐

  1. C++ 笔记(17)— 类和对象(构造函数、析构函数、拷贝构造函数)

    1. 构造函数 构造函数是一种特殊的函数(方法),在根据类创建对象时被调用.构造函数是一种随着对象创建而自动被调用的函数,它的主要用途是为对象作初始化. 构造函数的名称与类的名称是完全相同的,并且不会 ...

  2. php构造和析构方法,php5构造函数与析构函数实例

    自php5起,有了构造函数与析构函数. 这使得php更富有面向对象的魅力了. 在php4时,构造函数用的是与类同名的函数来进行构造这个动作. 例如: 复制代码 代码示例: /* * myclass.p ...

  3. 提高C++性能的编程技术笔记:构造函数和析构函数+测试代码

    对象的创建和销毁往往会造成性能的损失.在继承层次中,对象的创建将引起其先辈的创建.对象的销毁也是如此.其次,对象相关的开销与对象本身的派生链的长度和复杂性相关.所创建的对象(以及其后销毁的对象)的数量 ...

  4. c++, 派生类的构造函数和析构函数 , [ 以及operator=不能被继承 or Not的探讨]

    说明:文章中关于operator=实现的示例,从语法上是对的,但逻辑和习惯上都是错误的. 参见另一篇专门探究operator=的文章:<c++,operator=>http://www.c ...

  5. C++中的构造函数VS析构函数

    1.构造函数 类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行.构造函数的名称与类的名称的完全相同的,并且不会返回任何数据类型,也不会返回void.构造函数用于为某些成员变量设置初 ...

  6. 多继承的构造函数和析构函数

    //程序2:多继承的构造函数 与 析构函数 #include<iostream> using namespace std;class A { public: A() { cout<& ...

  7. c++ 构造函数析构函数 数据安全_C++知识点 16:构造函数和析构函数的语法

    #define _CRT_SECURE_NO_WARNINGS #include using namespace std;// 创建一个类( 类内包括: 2个构造函数,一个析构函数) class Pe ...

  8. 多重继承的构造函数和析构函数

    多重继承的构造函数和析构函数的执行顺序: //此处不做注释和说明了,看程序能读懂的 #include <iostream> using namespace std; class base1 ...

  9. C++中构造函数和析构函数

    [注]致力于将知识讲明白!不懂请留言! 构造函数 定义 它是一种特殊的方法.主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中. 另外,一个类可以有 ...

  10. c++ map 析构函数_C++学习刷题6--C++类的使用:构造函数、析构函数和类的使用

    一.前言 本部分为C++语言刷题系列中的第4节,主要讲解这几个知识点:构造函数.析构函数和类的使用.欢迎大家提出意见.指出错误或提供更好的题目! 二.知识点讲解 由以前知识可知,类的实现中包含成员变量 ...

最新文章

  1. mysql 设置事物自动提交_mysql事务自动提交的问题
  2. Android接收短信
  3. 一个博友的SQL问题解决过程
  4. 数组类型和多维数组的本质
  5. oracle数据库第十一章答案,[转载]《互联网数据库》网上作业练习题10-11章答案...
  6. 28个数控编程代码大全,众多程序员呕心沥血的私货
  7. 用IDM快速下载百度云文件
  8. 短视频发布之前要注意什么?从配音到发布时间,选对才能吸粉引流
  9. 8/30 Hourglass网络原理
  10. 嵌入式:ARM相关开发工具概述
  11. TeKtronix TDS210数字示波器说明书
  12. POJ1753(枚举)
  13. 惯性室内导航入门到精通(3)-计步算法
  14. 黑马程序员前端实战项目---PC端品优购(下)
  15. 创维YS代工E900V21E/TY1608-S905l3B-8822CS及7668无线通刷线刷包
  16. Essentially No Barriers in Neural Network Energy Landscape
  17. 未明学院:大学生如何增强自己的知识储备?要是读书时知道这些就好了!
  18. 公众号seo排名优化技术,公众号名称优化排名
  19. 图像视频大数据产业技术创新联盟成立
  20. 【IoT】加密与安全:NFC 读写 IC 卡以及密码安全验证

热门文章

  1. 视频教程-程序员入门指南-Python
  2. 这几天回过头看了以前的电视剧
  3. B2B网站排名 慧聪网超越环球紧追阿里
  4. SuperSlide、TouchSlide 解决网站大部分特效展示问题
  5. NTF的狂暴如火如荼,价值与受益者究竟是谁 ?
  6. cn2线路有什么优点
  7. ruby转换中文html Unicod
  8. 数字信号处理——Chirp Z变换
  9. mx550相当于什么水平 mx550独显相当于GTX什么级别
  10. 西瓜书课后题8.5(bagging)