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