我正在制作一个模拟项目,它需要创建多个相似的模型。我的想法是使用一个名为Model的类,并使用静态工厂方法来构建模型。例如;Model::createTriangle 或 Model::createFromFile。我从先前的Java代码中采用了这个思路,并寻找在C++中实现这个想法的方法。
目前我已经想到以下解决方案:
#include <iostream>
class Object {
int id;
public:
void print() { std::cout << id << std::endl; }
static Object &createWithID(int id) {
Object *obj = new Object();
obj->id = id;
return *obj;
}
};
int main() {
Object obj = Object::createWithID(3);
obj.print();
return 0;
}
关于这个问题有一些疑问:
- 这是制作对象的可接受和干净的方式吗?
- 返回的引用是否总是确保正确地移除对象?
- 有没有不使用指针的方法来实现这一点?
new
,那么你也做错了。请注意修改代码。 - Kerrek SB