C++ 拷贝构造函数的使用场景
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;class Person
{
public:Person(){cout << "默认构造函数调用" << endl;}Person(int a){m_Age = a;cout << "有参构造函数调用" << endl;}Person(const Person & p ){m_Age = p.m_Age;cout << "拷贝构造函数调用" << endl;}~Person(){cout << "析构函数调用" << endl;}int m_Age;
};//1、使用一个已经创建好的对象来初始化另一个对象
void test01()
{Person p1(18);Person p2(p1);cout << "p2年龄为: " << p2.m_Age << endl;
}//2、以值传递的方式 给函数的参数传值
void doWork( Person p)
{
}void test02()
{Person p1;doWork(p1);
}//3、以值的方式返回局部对象
Person doWork2()
{Person p1;return p1;
}void test03()
{Person p = doWork2();
}/*编译器将代码进行了优化void doWork2(Person & p){}void test03(){Person p;doWork2(p);}*/int main(){//test01();//test02();test03();system("pause");return EXIT_SUCCESS;
}
C++ 拷贝构造函数的使用场景相关推荐
- C++ 拷贝构造函数应用场景
第一个场景 #include <iostream>using namespace std;class Test{public://默认构造函数. 就是一个无参数的构造函数,//如果不显示提 ...
- C++ : 构造函数,拷贝构造函数,移动构造函数,拷贝赋值运算符,移动赋值运算符应用场景
构造函数,拷贝构造函数,移动构造函数,拷贝赋值运算符,移动赋值运算符应用场景 #include <iostream> using namespace std;class Construct ...
- 构造函数的调用场景--构造函数与拷贝构造函数、移动构造函数之辨
在Scott Meyers的著作<Effective C++>条款5中,明确指出要"了解C++默默编写并调用哪些函数".这里通过一个简短的C++代码,阐述哪些场景调用构 ...
- 拷贝构造函数应用场景
拷贝构造函数应用场景有四种 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std;class Ve ...
- C++ 拷贝构造函数和重载赋值运算符的区别
文章目录 拷贝构造函数 重载赋值运算符 赋值运算符和拷贝构造函数最大区别是赋值运算符没有新的对象生成,而拷贝构造函数会生成新的对象. 为了更加形象 准确得描述 赋值运算符和拷贝构造函数得区别,将详细通 ...
- c++ 拷贝构造函数_禁止拷贝构造,禁止bug
禁止拷贝构造,禁止bug 一.前言 首先,我先讲讲为什么会写这篇文章:这个也是翻阅自己之前博客,当时看开源代码的时候,总是很奇怪,为什么有的代码中会会出现类似于Epoll( const Epoll&a ...
- C++ 类和对象(二):构造函数、析构函数、拷贝构造函数、运算符重载
构造函数 析构函数 拷贝构造函数 运算符重载 class Date {}; 可以看到,上面那个类没有任何成员,是一个空类,但是它真的什么都没有吗?其实一个类在我们不写的情况下,都会生成6个默认的成员函 ...
- 利用类定义一个指针会调用默认构造函数吗_C++的拷贝构造函数
拷贝构造函数是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象.拷贝构造函数通常用于: 通过使用另一个同类型的对象来初始化新创建的对象. 复制对象把它作为参数传递给 ...
- C++ 拷贝构造函数和赋值运算符
本文主要介绍了拷贝构造函数和赋值运算符的区别,以及在什么时候调用拷贝构造函数.什么情况下调用赋值运算符.最后,简单的分析了下深拷贝和浅拷贝的问题. 拷贝构造函数和赋值运算符 在默认情况下(用户没有定义 ...
最新文章
- 【java】staitc
- FPGA的设计艺术(5)STA实战之时钟偏斜对建立保持时间的影响以及时序报告分析
- Codevs 1005 生日礼物
- 思维导图下载 注册安全_2019安全工程师《建筑实务》第二章第一节考点:物料提升机思维导图...
- Bokeh,一个超强交互式Python可视化库!
- maven snapshot依赖 打包_Maven教程2:Maven项目构建过程练习
- 各个线程顺序循环执行
- ARMV8 datasheet学习笔记5:异常模型
- 取消IDEA保存文件,默认删除行尾空格
- 论文分享|高精度面结构光三维测量方法研究
- 如何正确撰写sci论文中的作者信息
- Druid加载(load data)HDFS文件数据
- 【电子存证】互联网企业存证需求与痛点
- COCA单词整理(1-1000)
- 洛谷 | P1226 【快速幂】
- 悬挂式数字麦克风阵列 多点视频会议
- fatal: unable to access ‘https://github.com/PX4/PX4-Autopilot.git/‘: Failed to connect to github.com
- 【金猿投融展】众盟科技——专注商业智能的技术服务平台
- 汕头大学计算机专业荣誉,广西考生进入汕头大学要超一本线三四十分,但我想学的计算机专业在全国排名很低,真不知汕大的这专业有啥...
- 白领久坐腰酸屁股痛 做做小运动可缓解(转)
热门文章
- nth-child(n)和nth-of-type(n)
- 手把手教你用 elementUI 实现导航栏
- Jfinal 文件上传
- c语言 static的用法
- MyBatis ResultMap(2)
- Linux中的Ramdisk和Initrd
- vue lang_新疆人的“lang”是“浪”吗?
- linux 切换root_Linux运维服务篇:流量监控工具iftop部署及详细参数分享
- linux伙伴系统算法,Linux伙伴系统(三)--分配
- Java是先难后易吗_在解决问题的时候,是先难后易还是先易后难?