Ada*_*nst 5 c++ constructor factory
在 C++ 中,构造函数必须const使用初始化列表来初始化变量。
如果我的构造函数需要计算这些字段的值怎么办?通过数据库查找或简单计算进行说明。
这里可以应用工厂模式,但是看起来有点重。我正在考虑这样的静态方法X::GetX(param1, param2)将计算值并调用私有构造函数。
是否有更好或更流行的模式可以在这里使用?
无需调用私有构造函数,您可以直接从初始值设定项列表调用静态方法(或者在某些情况下,甚至是非静态方法)。例如:
class testclass {
public:
testclass::testclass(int n): memberdata(fn(n)) { }
private:
int fn(int n) {
// Various calculations on 'n'
return 12;
}
int memberdata;
};
Run Code Online (Sandbox Code Playgroud)