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相关推荐

  1. 面向对象程序设计-C++ Default constructor Copy constructor Destructor Operator Overloading【第九次上课笔记】...

    先上笔记内容吧: 这次上课的内容有关 构造函数 析构函数 运算符重载 return * this 内容很细,大家好好回顾笔记再照应程序复习吧 :) #include <iostream>u ...

  2. no copy constructor available or copy constructor is declared #39;explicit#39;

    今天新写了一个类.然后对这个类使用STL中的vector,碰到错误: no copy constructor available or copy constructor is declared 'ex ...

  3. 深度探索C++ 对象模型(4)-Default Copy Constructor(2)

    没有Default Constructor, class Myclass{ public://... private:int a;char *str; }; 编译器执行的是"位逐次拷贝(Bi ...

  4. 错误记录:error: call to implicitly-deleted copy constructor

    百度了很久,结果是因为自定义的结构体继承 QObject类, 而QObject的子类不可复制 错误: B.h:977:16: error: call to implicitly-deleted cop ...

  5. error: call to implicitly-deleted copy constructor of 编译报错分析

    在某次编译过程中,出现此报错,根据报错日志分析,查明原因,觉得很有意思,于是决定分享出来. 首先,先看例子代码(在main函数中关注test3对象的赋值操作即可,test1和test2对象后面会叙述) ...

  6. [C++]有关深复制与copy constructor的一些问题与实例

    纸上得来终觉浅,绝知此事要躬行 --- 今天对此话有了实际的领悟.之前学习C++的时候,自以为已经把深复制和复制构造函数等这些知识已经掌握了,但真正写起项目来的时候,还是不能提前考虑这些问题,直到问题 ...

  7. Copy Constructor与赋值运算符

    赋值运算符 '='的默认行为是数据成员的值的相应赋值,默认行为在类的成员中包含指针时容易出现问题,因为它只是赋值了指针的值,但是指针指向的值并未复制.赋值运算符是可以如同其他运算符一样重载的,重载后的 ...

  8. (原創) 哪些地方會用到Copy Constructor和Assignment Operator? (C/C++)

    C#.Java都沒有copy constructor,所以這對大部分programmer都很陌生,簡單地說,凡需要copy的地方,就需要copy constructor: 1.由copy-initia ...

  9. C++ Copy Constructor (拷贝构造函数,复制构造函数)

    1.什么是Copy Constructor? Copy Constructor 是一个特殊的构造函数,一般只有一个参数,这个参数一般是用const修饰的,对自己类的一个引用(reference).什么 ...

最新文章

  1. es6 语法 (Promise)
  2. python量化交易策略实例_Python进阶量化交易场外篇3——最大回撤评价策略风险...
  3. java多线程notify_Java多线程 wait notify
  4. jmc线程转储_查找线程转储中的异常和错误
  5. Spring Batch可重启性
  6. 前端学习(1357) :模板配置
  7. A8U公司的老程序猿的悲惨下场
  8. git获得当前分支url_笔记本拿出来!软件工程师必须要知道的Git命令语句大汇总...
  9. 【FFMPEG系列】之查看FFMPEG版本号
  10. Beyond Compare使用记录
  11. 点云能量预测:KPConv点云输入方式
  12. 基于KMeans的指数择时策略
  13. 华为机试4.27:购买水果最便宜的方案
  14. 性能测试专项 - 屏幕绘制性能-帧率测试 FPS测试
  15. WebUploader 设置单个图片上传
  16. python实现 stft_scipy-Python中的可逆STFT和ISTFT
  17. python模拟按键与鼠标操作(一)
  18. MySql安装与使用
  19. 【每日快讯】2018年5月12日 [星期六]
  20. 计算机网络与英语教学,计算机网络技术在大学英语教学的运用

热门文章

  1. Day10_linux计划任务管理
  2. Evernote中国版、优秀的笔记软件
  3. Clone Detective java home
  4. (未完成...)Python3网络爬虫(2):利用urllib.urlopen向有道翻译发送数据并获得翻译结果...
  5. HTML 常用标签全称
  6. Redis实现消息队列
  7. vs2015自动窗口(查看变量的值)
  8. Servlet、Filter、Listener、Interceptor基础
  9. postgresql 可调试
  10. 总体设计和登陆服务器 [游戏服务器的设计思路 转]