gpt4 book ai didi

c++ - 检查构造函数参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:00 25 4
gpt4 key购买 nike

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com