C++ explicit constructor/copy constructor note
C++:explict 作用显示声明构造函数只能被显示调用从而阻止编译器的隐式转换,类似只能用()显示调用,而不能=或者隐式调用
1 #include <iostream> 2 #include <vector> 3 #include <string> 4 #include <thread> 5 6 class Demo 7 { 8 private: 9 int a; 10 public: 11 explicit Demo() 12 : a(200) 13 { 14 std::cout << "默认构造函数" << std::endl; 15 } 16 17 ~Demo() 18 { 19 std::cout<<"析构函数"<<std::endl; 20 } 21 22 explicit Demo(const Demo &other) 23 { 24 a = other.a; 25 std::cout << "拷贝构造函数" << std::endl; 26 } 27 28 Demo &operator=(const Demo &other) 29 { 30 if (&other == this) 31 return *this; 32 a = other.a; 33 std::cout << "拷贝赋值构造函数" << std::endl; 34 return *this; 35 } 36 37 }; 38 39 40 void test(Demo& T) 41 { 42 43 } 44 45 46 int main() 47 { 48 Demo c; //explicit constructor; 49 Demo D(c); //explicit copy constructor 50 51 //test(D) //this is implicit,error; 52 53 return 0; 54 }
转载于:https://www.cnblogs.com/xuaidongstdudyrecording/p/7151243.html
C++ explicit constructor/copy constructor note相关推荐
- 面向对象程序设计-C++ Default constructor Copy constructor Destructor Operator Overloading【第九次上课笔记】...
先上笔记内容吧: 这次上课的内容有关 构造函数 析构函数 运算符重载 return * this 内容很细,大家好好回顾笔记再照应程序复习吧 :) #include <iostream>u ...
- no copy constructor available or copy constructor is declared #39;explicit#39;
今天新写了一个类.然后对这个类使用STL中的vector,碰到错误: no copy constructor available or copy constructor is declared 'ex ...
- 深度探索C++ 对象模型(4)-Default Copy Constructor(2)
没有Default Constructor, class Myclass{ public://... private:int a;char *str; }; 编译器执行的是"位逐次拷贝(Bi ...
- 错误记录:error: call to implicitly-deleted copy constructor
百度了很久,结果是因为自定义的结构体继承 QObject类, 而QObject的子类不可复制 错误: B.h:977:16: error: call to implicitly-deleted cop ...
- error: call to implicitly-deleted copy constructor of 编译报错分析
在某次编译过程中,出现此报错,根据报错日志分析,查明原因,觉得很有意思,于是决定分享出来. 首先,先看例子代码(在main函数中关注test3对象的赋值操作即可,test1和test2对象后面会叙述) ...
- [C++]有关深复制与copy constructor的一些问题与实例
纸上得来终觉浅,绝知此事要躬行 --- 今天对此话有了实际的领悟.之前学习C++的时候,自以为已经把深复制和复制构造函数等这些知识已经掌握了,但真正写起项目来的时候,还是不能提前考虑这些问题,直到问题 ...
- Copy Constructor与赋值运算符
赋值运算符 '='的默认行为是数据成员的值的相应赋值,默认行为在类的成员中包含指针时容易出现问题,因为它只是赋值了指针的值,但是指针指向的值并未复制.赋值运算符是可以如同其他运算符一样重载的,重载后的 ...
- (原創) 哪些地方會用到Copy Constructor和Assignment Operator? (C/C++)
C#.Java都沒有copy constructor,所以這對大部分programmer都很陌生,簡單地說,凡需要copy的地方,就需要copy constructor: 1.由copy-initia ...
- C++ Copy Constructor (拷贝构造函数,复制构造函数)
1.什么是Copy Constructor? Copy Constructor 是一个特殊的构造函数,一般只有一个参数,这个参数一般是用const修饰的,对自己类的一个引用(reference).什么 ...
最新文章
- es6 语法 (Promise)
- python量化交易策略实例_Python进阶量化交易场外篇3——最大回撤评价策略风险...
- java多线程notify_Java多线程 wait notify
- jmc线程转储_查找线程转储中的异常和错误
- Spring Batch可重启性
- 前端学习(1357) :模板配置
- A8U公司的老程序猿的悲惨下场
- git获得当前分支url_笔记本拿出来!软件工程师必须要知道的Git命令语句大汇总...
- 【FFMPEG系列】之查看FFMPEG版本号
- Beyond Compare使用记录
- 点云能量预测:KPConv点云输入方式
- 基于KMeans的指数择时策略
- 华为机试4.27:购买水果最便宜的方案
- 性能测试专项 - 屏幕绘制性能-帧率测试 FPS测试
- WebUploader 设置单个图片上传
- python实现 stft_scipy-Python中的可逆STFT和ISTFT
- python模拟按键与鼠标操作(一)
- MySql安装与使用
- 【每日快讯】2018年5月12日 [星期六]
- 计算机网络与英语教学,计算机网络技术在大学英语教学的运用
热门文章
- Day10_linux计划任务管理
- Evernote中国版、优秀的笔记软件
- Clone Detective java home
- (未完成...)Python3网络爬虫(2):利用urllib.urlopen向有道翻译发送数据并获得翻译结果...
- HTML 常用标签全称
- Redis实现消息队列
- vs2015自动窗口(查看变量的值)
- Servlet、Filter、Listener、Interceptor基础
- postgresql 可调试
- 总体设计和登陆服务器 [游戏服务器的设计思路 转]