Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 具有不变量的快速类int类型?C++;_C++_User Defined Types - Fatal编程技术网

C++ 具有不变量的快速类int类型?C++;

C++ 具有不变量的快速类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_ <=

有没有一种快速的方法来定义一个在构造函数中有int成员和不变量的类型

e、 g

班级年龄{
公众:
年龄(国际年龄){

期望(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(0
Expects
可以拼写,然后您可以通过转换运算符公开年龄,这将允许所有其他操作正常工作:

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_;
};