如何解决如何处理从 getter 方法返回的错误?
我想知道在这种情况下如何从 getter 方法返回错误?
class A
{
private:
int a;
int b;
public:
const int& get(int i)
{
if (i == 1) return a;
else if (i == 2) return b;
// else... what to do here? I get a warning if I don't put anything.
}
};
解决方法
注意:您不需要将 const int&
返回给您的成员类,int
就足够了。
C++ 方法是例外,但我不喜欢它们,我想根据某些情况建议其他方法:
- Getter 函数必须做一些操作然后返回结果;在这种情况下,我们可以返回一个
std::pair<boo,Type_Of_Result>
,它是布尔类型,表示“这是一个成功的操作?”:
class A {
private:
int m_value;
public:
A(const int value):
m_value(value) {
}
template<typename T>
using return_t = std::pair<bool,T>;
return_t<int> get() const {
return { true,m_value };
}
};
- 好的,我们得到了返回值状态,但如果失败,如何找到原因?:在这种情况下,我们可以创建一个
Result
类来处理错误消息和返回值:
template <typename T>
struct Result {
T return_value;
bool its_okay;
std::string message;
};
class A {
// ...
Result<int> get() const {
return { m_value,true,"All right" };
}
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。