【发布时间】:2017-08-26 03:47:49
【问题描述】:
我目前正在学习 C++。我了解了一些由编译器生成的特殊成员函数。
• 默认构造函数。 • 复制构造函数 • 移动构造函数 • 复制赋值运算符 • 移动赋值运算符 • 析构函数
我知道每个成员函数的功能。但我想知道哪些成员函数是必要的,应该声明(而不是由编译器生成),作为良好编码实践的一部分,同时牢记内存和效率。
【问题讨论】:
-
理想情况下,除了常规构造函数(如果需要)之外,您不需要定义任何内容。很好的参考:en.cppreference.com/w/cpp/language/rule_of_three
-
这完全取决于你的类(类型)做什么以及它包含什么。没有通用的答案。
-
90% 的时间你不会定义任何这些。剩下的 10%,定义那些有意义的。如果您希望某些代码在销毁时运行,请定义析构函数。当其中的每一个都被隐式定义或没有被隐式定义时,您应该知道一组条件。
标签: c++ member-functions