[英]inline constructor and destructor in cpp file
听起来好像很奇怪,我的意思是,当仅在cpp文件中定义一个类时,因为它更多地是用于实现另一个类的帮助程序类,因此不应该放在其私有部分中。 我知道内联构造函数和析构函数是一种不好的做法,但是这种情况如何呢? 非常感谢你
编辑:我应该改写它。 在某些情况下,内联构造函数和析构函数会意外导致膨胀代码(如有效C ++项目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
无论哪种方式都很好。 如果辅助函数由于没有被内联而成为性能瓶颈,那么您可以考虑使其成为内联函数。
很多时候,我发现Helper
类的单个实例足以供主类使用。 因此,构造函数和析构函数是否内联根本没有任何区别。
namespace {
class Helper
{
public:
Helper() {...}
~Helper() {...}
};
// The sole instance of the Helper class.
static Helper helper;
}
void main_class::foo()
{
helper.foo();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.