C++ 构造函数【新手必学】
前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
作者:可乐司机
构造函数是C++里面的基础内容,特别重要,如果你刚学C++不久,不是很懂,建议可以先去小编的C++交流.裙 :九起久伞吧起伞留伞(数字的谐音)转换下可以找到了,里面有最新C++教程项目从0到进阶,有问题多请教里面的人,进步更快哦
1. 定义
与类同名、无返回值类型的成员函数。
析构函数是对象创建的一部分,在创建对象时,会被自动调用;创建对象后,析构函数就不能再被调用
默认析构函数:不带参数,或者所有参数都有默认值的的析构函数,析构函数可以重载。
类的析构函数一般是公开的,但是有时也把析构函数声明为私有的(如单例模式中就把析构函数声明为私有的),其作用是限制创建该类对象的范围。
2. 调用
根据参数进行重载,决定调用哪个析构函数。
3. 成员初始化表
对于常量数据成员和引用数据成员(某些静态成员除外),不能在声明它们时进行初始化,也不能采用赋值操作对它们初始化。
class A
{
int x;
const int y=1;//Error
int &z=x;//Error
public:
A()
{
x=0;//OK
y=1;//Error,y是常量成员,其值不能改变
}
}
它们的初始化要在成员初始化表中进行。
class A
{
int x;
const int y;
int& z;
public:
A(): z(x),y(1)
{
x=0;
}
}
或者
class A
{
int x;
const int y;
int& z;
public:
A(): x(0),z(x),y(1)
{
}
}
成员初始化表的次序不决定它们的初始化次序,它们的初始化次序由它们在类中的定义的次序决定。如果你刚学C++不久,不是很懂,建议可以先去小编的C++交流.裙 :九起久伞吧起伞留伞(数字的谐音)转换下可以找到了,里面有最新C++教程项目从0到进阶,有问题多请教里面的人,进步更快哦
如果类中含有常量数据成员或引用数据成员,一定要定义带有成员初始化表的构造函数,否则编译程序生成的默认构造函数是没有成员初始化表的,这样的类是不能创建对象的。
在创建包含成员对象的对象时,首先调用本身类的构造函数,在进入本身类的析构函数之前,将会去调用成员对象类的构造函数,然后再执行本身构造函数的函数体(在继承中,要先调用基类的构造函数,再调用成员对象类的构造函数,最后执行自己的函数体)。即使成员对象初始化表为空,只要类中有成员对象,编译程序就会生成对成员对象构造函数的调用指令,只不过它调用的默认构造函数
C++ 构造函数【新手必学】的更多相关文章
- 浅谈HTML之模仿人人网登陆界面(新手必学)
为方便大家对web相关知识的了解,现谈谈新手如何从HTML css Javascript到以后后台的发展.首先,让大家看看HTML仿人人登陆界面: <!doctype html> < ...
- PHP新手必学之刚进公司装环境
由于今天去一家公司做项目,又重新的装了一遍所熟悉的PHP环境,所以记录下来,总结下. PHP环境主要: PHPstudy(apache+mysql+php)+phpstorm+navicate 解释: ...
- Python爬虫之cookie的获取、保存和使用【新手必学】
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:huhanghao Cookie,指某些网站为了辨别用户身份.进行ses ...
- 一款简单的C++猜数字游戏(新手必学)
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:1只小弛 废话不多说,直接上代码! #include<bits/s ...
- Python学习笔记—自动化部署【新手必学】
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:唯恋殊雨 目录 pexpect fabric pexpect P ...
- Python基础语法总结【新手必学】
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:weixin_45189038直接上知识点: 1. 注释 单行注释: ...
- Python 如何定义只读属性?【新手必学】
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:Daniel2333如果还没学到属性问题,看不懂不怪你,可以先去小编的P ...
- 【新手必学】Python爬虫之多线程实战
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:清风化煞_ 正文 新手注意:如果你学习遇到问题找不到人解答,可以点 ...
- Python自动输入【新手必学】
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:哈喽哈嘿哈 这篇文章是我的第一篇文章,写的不好的地方,请大家多多指教哈 ...
随机推荐
- 扛把子组20191114-4 Beta发布用户使用报告
此作业的要求参见:http://edu.cnblogs.com/campus/nenu/2019fall/homework/10007 小组情况: 队名:扛把子 组长:孙晓宇 组员:宋晓丽 梁梦瑶 韩 ...
- html基础——a标签
a标签:超链接/锚点链接 实现页面跳转 只占据自己内容大小的位置 超链接: 使用 target="_self":表示在本页面跳转到 href 中的地址 target=" ...
- 多线程之美3一Java并发工具类
一.简介 1.1. Semaphore 信号量,见文知义,常用于并发控制中的限流作用,我理解是限定数量的共享锁机制.该共享资源最多同时可让n个线程访问,超过n个线程就阻塞等待,如有资源空闲, 唤醒其他 ...
- windows下的nginx应用
nginx(背景) nginx是一个高性能的HTTP服务器,以前我经常在linux系统中配置,主要做反向代理和负载均衡,最近根据业务需要,需要在window中配置反向和负载,下面就介绍一下nginx的 ...
- 【Luogu P2024&P1892】食物链&团伙(并查集拓展域)
Luogu P1892 Luogu P2024 这两道一眼看过去很容易发现可以用并查集来做--但是当我们仔细阅读题面后,会发现其实并没有那么简单. 我们知道并查集可以很轻松地维护具有传递性的信息,也就 ...
- linux计算机网络基础
OSI7层协议和TCP/IP4层网络协议 第一层:物理层,定义各种物理设备的规范,如通信距离,接口大小等. 第二层:数据链路层,基于mac地址通信是,数据报文封装和相应方式. 第三层:网络层,基于IP ...
- Spring Boot 注解之ObjectProvider源码追踪
最近依旧在学习阅读Spring Boot的源代码,在此过程中涉及到很多在日常项目中比较少见的功能特性,对此深入研究一下,也挺有意思,这也是阅读源码的魅力之一.这里写成文章,分享给大家. 自动配置中的O ...
- 基于 HTML5 + WebGL 的宇宙 3D 展示系统
前言 近年来随着引力波的发现.黑洞照片的拍摄.火星上存在水的证据发现等科学上的突破,以及文学影视作品中诸如<三体>.<流浪地球>.<星际穿越>等的传播普及,宇宙空间 ...
- Linux命令行初学(一)
linux命令大全:https://www.linuxcool.com/ 大概了解到有哪些命令,如果有需要的话可以在该网站上查询. 另外在实验楼学习了一些基础,该篇博客就此次对linux命令行的学习进 ...
- 详细nginx配置SSL
1.nginx的ssl 让nginx实现用https来访问网站,http是80端口,https是443端口. https其实就是一种加密的http 2.为什么要加密 例子:在网上银行汇款,在你汇款的过 ...