class item
{
int i;
public:
item(int no) {
}
};
我想检查构造函数参数。如果发现它持有负值,则应停止对象创建。
这里不能使用异常,因为目标系统不支持异常。
最佳答案
没有抛出就无法停止对象的创建。您可以做的最好的事情是设置一个“无效参数”标志,您必须在之后检查该标志,如果为真,则丢弃该对象而不使用它。
根据您的要求,使用工厂方法创建对象可能会更好——这样,您可以在调用构造函数之前进行检查:
class item
{
int i;
public:
static item* create(int no) {
if (no < 0) {
return 0;
}
return new item(no);
}
private:
item(int no) {
}
};
你可以这样使用
item* myItem = item::create(-5);
if(!myItem) {
// failed
}
但是,这会强制您在堆上分配所有 item
实例。
关于c++ - 检查构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7361077/