C++ 有参构造 无参构造 拷贝构造 以及参数化列表 成员对象之间的执行关系
#include <iostream>
#include <string>
using namespace std;
class Phone {
public:string m_pname;/*Phone() {cout << "无参构造" << endl;m_pname = "vivo";}*/Phone(const Phone &p) {cout << "拷贝构造" << endl;m_pname = p.m_pname;}Phone(string pname) {cout << "有参构造" << endl;m_pname = pname;}
};
//Phone p1;
class Person {public:string m_name;Phone m_phone = {"s"};Person(){/*m_phone = Phone("ss")*/;}
};
//class Person {
//public:
// string m_name;
// Phone m_phone;
// Person():m_phone("ss") {
// /*m_phone = Phone("ss")*/;
// }
//};
//class Person {
//public:
// string m_name;
// Phone m_phone;
// Person() : m_phone(p1) {
//
// }
//};int main()
{Person p;return 0;
}
- Person对象构造之前,先将Person类的成员对象构造出来,也就是说 正式执行 Person 构造函数体 { } 之前, Person类的成员对象就要构造出来,
Phone m_phone; 这句话就要求必须有无参构造函数, 否则无法创建m_phone这个对象, 如果确实没有无参构造,那么在Person类的初始化列表里面指定构造方式也可以。 这就是所谓的 没有无参构造的成员对象要放在初始化列表里面执行,
这句话其实是片面的。比如 Phone m_phone = {“s”}; 这样写的话,就算没有无参构造,也可以不用再初始化列表初始化了。
C++ 有参构造 无参构造 拷贝构造 以及参数化列表 成员对象之间的执行关系相关推荐
- 小tips !!! 构造,析构,拷贝构造知识点总结
构造,析构,拷贝构造核心点总结 构造函数 并不是开空间创建对象 主要完成类对象初始化工作 构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用 在对象的生命周期内只调用一次 ...
- IDEA try catch快捷键、 快速生成get set 方法快捷键、快速生成有参和无参构造方法快捷键
IDEA try catch快捷键. 快速生成get set 方法快捷键.快速生成有参和无参构造方法 1. try catch快捷键 小伙伴们在写代码的过程中,有时需要抛出异常,手写太浪费时间,我们想 ...
- IDEA 工具中 如何生成有参和无参的构造方法
IDEA 工具中 如何生成有参和无参的构造方法 按下Alt+ins键
- wait与sleep的讲解(wait有参及无参区别)
目录 1. wait() 与wait( long timeout ) 区别 2. wait(0) 与 sleep(0)区别 3. wait 和sleep 释放代码 4. wait 与 sleep 区 ...
- python有参函数和无参函数的区别_构造函数的有参和无参的区别,构造函数的参数是派什么用场的?...
展开全部 区别: 1.如果在创建对象时不写参数,调用的就32313133353236313431303231363533e58685e5aeb931333366303861是无参的构造方法.可是如果你 ...
- 构造器(有参、无参)
构造器: 就是和类名相同但无返回类型的方法.用于当前或某一对象的实例化,并将当前或某一对象返回.无参构造:1.如果使用new关键字实际上是调用无参构造器:2.无参构造往往是为了初始化一些值.有参构造: ...
- Qt调用python有参和无参方法,取方法返回值
环境准备 QT版本:4.8.5 下载地址:http://download.qt.io/archive/qt/4.8/4.8.5/ MinGW编译器:MinGW 32位 下载地址:https ...
- 三天实现独立分析宏基因组数据(有参、无参和分箱等)
在广大粉丝的期待下,<生信宝典>联合<宏基因组>在2019年11月1-3日,北京鼓楼推出<宏基因组分析>专题培训第六期,为大家提供一条走进生信大门的捷径.为同行提供 ...
- java有参和无参的用处_Java对比有参数和无参数
有参数:小括号当中有内容,当一个方法需要一些数据条件,才能完成任务的时候,就是有参数. 例如两个数字相加,必须知道两个数字是各自多少,才能相加. 无参数:小括号当中留空.一个方法不需要任何数据条件,自 ...
最新文章
- 无需自己输入include这些的方法
- SpringBoot介绍
- C++调用matlab char16_t 重复定义
- 对于在git上面拉代码报“error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054“解决方法
- python成绩管理系统界面-python实现简易版学生成绩管理系统
- 何所思 | 数据中心二十条
- java 命令行 读取文件_java读取txt文件
- 数字化转型的认识模型
- 如何提高码农产量,基于ASP.NET MVC的敏捷开发框架之自定义表单开发随笔四
- 5.深度学习练习:Deep Neural Network for Image Classification: Application
- 没经验能做软件测试吗?
- GPS 的物理数学原理
- RC充放电网络的定量计算
- 图像视频处理中Win7 32位+VS2010+OpenCV2.3.1的配置过程
- 修改统计信息自动收集时间窗口
- 框架应该弄明白的理论问题
- MATLAB实验总结定积分,matlab实验报告--定积分的近似计算 -
- 安卓圆形头像制作两种方法。
- 2021年幼儿园教师招聘:规则性游戏的指导
- 360浏览器登录新浪微博图标显示为字母及占用CPU过高问题的解决
热门文章
- OpenDaylight开发hello-world项目之开发工具安装
- CSS3 Filter详解(改变模糊度 亮度 透明度等方法)
- link-cut-tree 简单介绍
- excel数据生成sql insert语句
- 1058. 选择题(20)
- python学习(九) 网络编程学习--简易网站服务器
- 在IIS中部署Asp.net Mvc
- Adroid学习之 从源码角度分析-禁止使用回退按钮方案
- 分割范围Codeforces Round #181 (Div. 2)
- python亲密度_Python OpenCV 图像2D直方图,取经之旅第 25 天