是否有一种快速方法可以在构造函数中定义具有int成员和不变量的类型...
e.g。
${a.name}
...然后将类型设置为可用作int?
class Age {
public:
Age(int age) {
Expects(0 <= age && age <= 125);
age_ = age;
}
private:
int age_;
}
(或者是覆盖所有运营商的唯一方法?)
谢谢,约翰。
答案 0 :(得分:3)
您可以添加operator int()
返回值,它可以作为整数使用。
答案 1 :(得分:1)
Expects
可以拼写为assert()
,然后您可以通过转换运算符公开年龄,这将允许您的所有其他操作正常工作:
class Age {
public:
Age(int a) : age_(a) {
assert(0 <= age_ && age_ <= 125);
}
operator int() const { return age_; }
private:
int age_;
};
侧边限制年龄为125有点悲观。梦想大!