尽管问题听起来很奇怪,我的意思是当一个类仅在 cpp 文件中定义时,因为它更多的是用于实现另一个类的辅助类,并且不值得位于其私有(private)部分中。我知道内联构造函数和析构函数是一种不好的做法,但是这种情况怎么样,如下所示?非常感谢
编辑:我应该重新措辞。在某些情况下,内联构造函数和析构函数会导致代码意外膨胀(如《Effective C++ Item 30,“了解内联的来龙去脉”中所述)》。但是我想知道这种内联是否也导致了这种情况
// my_class.cpp
#include <my_class.h>
namespace {
class Helper
{
public:
Helper() {...} // should I inline the constructor here?
~Helper() {...} // should I inline the destructor here?
};
/* alternative implementation looks like
Helper::Helper()
{...}
Helper::~Helper()
{...}
*/
} // end of anonymous namespace
// implementation of my_class
最佳答案
这可能是一个有争议的问题。另议here很好地讨论了这一点。基本的要点是,编译器可能会忽略您的“内联”,或者可能选择在没有您输入的情况下“内联”函数/构造函数/任何内容。内联命令只是一个编译器可以忽略的建议。
TL;DR 努力吧;这可能不会有什么不同。
关于c++ - cpp 文件中的内联构造函数和析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33905871/