一、拷贝构造函数

1. 形式

class A {
public:
// ...
A(const A &); // 拷贝构造函数
};

2. 合成拷贝构造函数

  • 编译器总会为我们合成一个拷贝构造函数,即使我们定义了其他构造函数。

3. 拷贝构造函数不应该是explicit的

  • 拷贝构造函数在必要时可以被隐式地使用。

4. 拷贝初始化

①用=定义对象

string s1 = s;
string s2 = "hello";
string s3 = string(10, 'c');

②传递参数(形参为非引用类型)

③函数返回一个非引用类型的对象

④用花括号初始化一个数组中的元素或一个聚合类中的成员

二、拷贝赋值运算符

1. 形式

class A {
public:
// ...
A& operator=(const A &); // 赋值运算符
};

2. 合成拷贝赋值运算符

  • 编译器会为我们生成一个合成拷贝赋值运算符,如果该类未定义自己的拷贝赋值运算符。

3. 与拷贝构造函数的区别

class string {
public:
// ...
string(const string &);
string& operator=(const string &);
}; string s;
string ss = "hello"; // 拷贝构造函数
s = ss; // 拷贝赋值运算符

  

最新文章

  1. C和指针 第十四章 预处理器 头文件
  2. 关于配置Spring框架的多个propertyConfigurer的问题
  3. HDU 3695 Computer Virus on Planet Pandora(AC自动机模版题)
  4. mvn打包idea项目
  5. winform(数据导出、TreeView的使用)
  6. Mac上安装node.js
  7. HTML的列表标签
  8. 已知json类型根据类型封装集合
  9. Eclipse自动生成文档注释
  10. javaScrip中的“?”
  11. Productivity Improvements for the Entity Framework(实体框架设计)【转】
  12. HTML+CSS基础总结
  13. 正则API
  14. 分享:Java 开发精美艺术二维码
  15. 面试中遇到的原生js题总结
  16. Java窗体居中显示的2种方法
  17. js 格式化时间、字符串指定长度、随机字符串
  18. 网络编程——socket编程
  19. jquery获取包含本身的元素
  20. [BZOJ 4870] 组合数问题

热门文章

  1. ABAP术语-RFC (Remote Function Call)
  2. springboot-自定义起步依赖
  3. Python提高篇
  4. Python对文件目录的操作
  5. C语言之一般树
  6. 常用代码c#
  7. C语言与汇编语言相互调用原理以及实例
  8. .NET : 开发ActiveX控件(转载)
  9. 北京Uber优步司机奖励政策(2月24日)
  10. Ubuntu配置IP