gpt4 book ai didi

c++ - 如何检查 C++ 类构造函数中的参数大小

转载 作者:行者123 更新时间:2023-11-30 05:10:31 25 4
gpt4 key购买 nike

例如:

class Static {
public:
Static(std::vector<int> v) {
if (v.size() ! = 3) {
//...
}
}
~Static() {
std::cout << "Static dtor\n";
}
};

我有一个名为 Static 的类, 它的构造函数有一个参数 v , 我怎样才能检查 v '大小,如果 v.size() < 3 , 构造函数退出

很多回答说用throw就可以解决一个异常(exception),但问题是析构函数不会被调用。

所以我想知道是否return会好的,例如:

class Static {
public:
Static(std::vector<int> v) {
if (v.size() ! = 3) {
//to log some error info
return;
}
}
~Static() {
std::cout << "Static dtor\n";
}
};

最佳答案

so I wonder whether return will be ok, for examples:

这很可能是不对的,因为它给你留下了 Static处于无效和未正确初始化状态的实例。

避免这种情况并保持一切干净的唯一方法是抛出异常。


假设您要管理一个 std:.vector<int>内部固定大小为 3,最好像这样重写构造函数

Static(int a, int b, int c) {
v_.push_back(a);
v_.push_back(b);
v_.push_back(c);
}

关于c++ - 如何检查 C++ 类构造函数中的参数大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45649100/

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