C++ 具有不变量的快速类int类型?C++;
有没有一种快速的方法来定义一个在构造函数中有int成员和不变量的类型 e、 gC++ 具有不变量的快速类int类型?C++;,c++,user-defined-types,C++,User Defined Types,有没有一种快速的方法来定义一个在构造函数中有int成员和不变量的类型 e、 g 班级年龄{ 公众: 年龄(国际年龄){ 期望(0您可以添加运算符int()返回值,它将作为整数使用。您可以添加运算符int()返回值,它将作为一个整数使用。可以拼写,然后您可以通过转换运算符公开年龄,这将允许所有其他操作工作: class Age { public: Age(int a) : age_(a) { assert(0 <= age_ && age_ <=
班级年龄{
公众:
年龄(国际年龄){
期望(0您可以添加运算符int()
返回值,它将作为整数使用。您可以添加运算符int()
返回值,它将作为一个整数使用。可以拼写,然后您可以通过转换运算符公开年龄,这将允许所有其他操作工作:
class Age {
public:
Age(int a) : age_(a) {
assert(0 <= age_ && age_ <= 125);
}
operator int() const { return age_; }
private:
int age_;
};
班级年龄{
公众:
年龄(整数a):年龄(整数a){
assert(0Expects
可以拼写,然后您可以通过转换运算符公开年龄,这将允许所有其他操作正常工作:
class Age {
public:
Age(int a) : age_(a) {
assert(0 <= age_ && age_ <= 125);
}
operator int() const { return age_; }
private:
int age_;
};
班级年龄{
公众:
年龄(整数a):年龄(整数a){
assert(0我不想劫持这个问题,但不能assert()
在外部被禁用,这会导致检查变成不可操作,并导致不变量损坏?@user2296177这是一项功能。您可以在启用断言
s的情况下测试代码,然后在生产过程中,您无需支付检查费用。谢谢!使用“预期”(来自CPP核心指南GSL库)不会影响“operator int()”吧?我不想劫持这个问题,但不能assert()
在外部被禁用,这会导致检查变成不可操作,并导致不变量损坏?@user2296177这是一项功能。您可以在启用断言
s的情况下测试代码,然后在生产过程中,您无需支付检查费用。谢谢!使用“预期”(来自CPP核心指南GSL库)不会影响“运算符int()”但会吗?
class Age {
public:
Age(int a) : age_(a) {
assert(0 <= age_ && age_ <= 125);
}
operator int() const { return age_; }
private:
int age_;
};