我有一个静态函数,它填充传递的引用对象并返回一个整数来表示错误或成功。
static int readDeformationGrid(const std::string& gridFile,
DeformationGrid& defgrid)
是否可以使用相同的静态成员函数来初始化对象?这是个坏主意吗?
像
这样的东西DeformationGrid(const std::string& gridFile)
{
int ret = DeformationGrid::readDeformationGrid(gridFile, *this);
if(ret < 0)
throw std::invalid_argument("Error reading deformation grid file " + gridFile);
}
或者我应该使用工厂模式吗?
我认为这样的东西在可重构对象中很有用。一个reconfigure
方法和构造函数将共享相同的代码,因此将它放在第三个成员函数上是有意义的,因为在第二种情况下它可能还没有对象。
如何在构造函数上调用这样的方法?