gpt4 book ai didi

c++ - getter(按值)方法的异常安全保证是什么?

转载 作者:搜寻专家 更新时间:2023-10-31 00:31:53 24 4
gpt4 key购买 nike

对于以下示例类,exception safety 是什么? getter 方法的保证?

这样的 getter 方法是否提供了最低限度的强保证?

按值返回基本类型是否总能提供不抛出保证?

class Foo
{
public:

// TODO: Constructor

// Getter methods
int getA() const { return a; }
std::string getB() const { return b; }
std::vector<int> getC() const { return c; }
Bar getD() const { return d; }
std::vector<Bar> getE() const { return e; }

protected:
int a;
std::string b;
std::vector<int> c;
Bar d;
std::vector<Bar> e;
}

最佳答案

根本无法保证异常安全。

例如,getA() 可能会在 a 未初始化时抛出异常(或者为此做任何其他事情,因为行为是未定义的)。某些芯片(例如 Itanium)会在读取单元化变量时发出信号。

如果内存不足,

getC() 可能会抛出 std::bad_alloc。同上 getB()getD()getE()

关于c++ - getter(按值)方法的异常安全保证是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32759048/

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