1.如果定义了析构函数,则必须同时定义或者删除拷贝构造和拷贝赋值。
2.如果定义了拷贝构造函数,那么必须定义或者删除拷贝赋值函数,否则会造成低效。
3.如果定义了移动构造函数,那么必须定义或者删除移动赋值函数,会出错,删除可导致低效。
4.如果定义了拷贝构造或者拷贝赋值,那么必须最好同时定义移动构造或者移动赋值,否则低效。
C++三五法则
最新推荐文章于 2024-07-28 18:49:22 发布
本文介绍了C++中构造函数、拷贝构造函数、拷贝赋值运算符、移动构造函数和移动赋值运算符的搭配使用规则。强调了若定义了析构函数,通常需要同时定义或删除拷贝构造和拷贝赋值,以避免效率低下或错误。同时指出,定义了拷贝构造或拷贝赋值后,推荐定义相应的移动构造和移动赋值,以提升性能。
摘要由CSDN通过智能技术生成