在《Effective C++:Item 30:理解内联的里里外外》中,Scott Meyer指出,构造函数和析构函数通常不是内联的最佳选择。
在类定义中定义函数会隐式地(而不是显式地)请求将其作为内联。根据编译器的质量,编译器会决定是否实际将定义的函数作为内联函数(无论是显式还是隐式)。
综合考虑所有这些因素,将空/复制/移动构造函数、复制/移动赋值运算符和析构函数明确定义为默认函数(即使用default
关键字)是否比在头文件中更好的做法?毕竟,default
仅涉及实现,而非双重delete
?
= default
函数是不寻常的。 - Bo Persson