当前位置: 首页> 科技> 名企 > 厂里拿货开小加工厂_拔萝卜视频播放在线观看免费_网络宣传推广方法_pc端网页设计公司

厂里拿货开小加工厂_拔萝卜视频播放在线观看免费_网络宣传推广方法_pc端网页设计公司

时间:2025/7/13 22:49:54来源:https://blog.csdn.net/weixin_43364551/article/details/142920930 浏览次数:0次
厂里拿货开小加工厂_拔萝卜视频播放在线观看免费_网络宣传推广方法_pc端网页设计公司

文章目录

  • 1. 无参构造函数
  • 2. 拷贝构造函数
  • 3. 移动构造函数(C++11)
  • 4. 赋值运算符重载函数
  • 5. 移动赋值运算符重载函数(C++11)
  • 6. 重载取址运算符函数
  • 7. 重载取址运算符const函数
  • 8. 析构函数
  • 9. 测试

1. 无参构造函数

MyClass() {cout << "无参构造" << endl;
}

默认生成条件:不声明其他构造函数

2. 拷贝构造函数

MyClass(const MyClass& m) {this->a = m.a;cout << "拷贝构造" << endl;
}

默认生成条件:不声明拷贝构造或者移动构造

3. 移动构造函数(C++11)

MyClass(const MyClass &&m) {cout << "移动构造" << endl;
}

默认生成条件:不声明拷贝构造或者移动构造

4. 赋值运算符重载函数

MyClass& operator=(const MyClass& m) {if (this != &m) {this->a = m.a; }cout << "赋值运算符" << endl;return *this;
}

默认生成条件:不声明赋值运算符重载函数或者移动赋值运算符重载函数

5. 移动赋值运算符重载函数(C++11)

MyClass& operator=(const MyClass&& m) {if (this != &m) {this->a = m.a; }cout << "移动赋值运算符" << endl;return *this;
}

默认生成条件:不声明赋值运算符重载函数或者移动赋值运算符重载函数

6. 重载取址运算符函数

MyClass* operator&() {return this; 
}

7. 重载取址运算符const函数

const MyClass* operator&() const {return this;
}

8. 析构函数

~MyClass() {cout << "析构函数" << endl;
}

9. 测试

MyClass m1; // 1 无参构造
MyClass m2 = m1; // 2 拷贝构造
MyClass m3(m1); // 3 拷贝构造
m3 = m1; // 4 赋值运算符
MyClass m4 = std::move(m1);  // 5 移动构造
MyClass m5(std::move(m2)); // 6 移动构造,如果只声明了拷贝构造,会调用拷贝构造
m2 = std::move(m3); // 7 移动赋值运算符,如果只声明了赋值运算符重载函数,会调用赋值运算符重载函数

如果在定义的同时进行赋值(2和5),等价于用已有对象初始化新对象(3和6),则调用的是构造函数,如第2和第5调用的分别是拷贝构造和移动构造;如果在定义后,再进行赋值,则调用的是赋值运算符(4和7)。

关键字:厂里拿货开小加工厂_拔萝卜视频播放在线观看免费_网络宣传推广方法_pc端网页设计公司

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: