gpt4 book ai didi

c++ - 有没有实现不变式的通用方法?

转载 作者:行者123 更新时间:2023-12-02 09:53:18 24 4
gpt4 key购买 nike

这是我要添加不变式的基本示例,例如我的年龄不能低于0。

#include "InvariantTest.h"
#include <iostream>
#include <string>
using namespace std;


int age;
string name;


void setAge(int a) {
age = a;
}

void setName(string n) {
name = n;
}

string getNameandAge() {
string both;

both = name + to_string(age);
return both;

}

我找不到如何在c++中实现不变式的规范。

最佳答案

通常,除了assert(a > 0)之外,您至少还需要add a debug assertion if (a > 0) age = a;(这将在运行程序的调试版本时引发异常)
您也可以抛出一个完整的异常,而不是在不遵守契约(Contract)时断言,这样程序将尽早终止。您还可以在方法调用站点捕获异常,并优雅地处理错误。
存在其他错误处理技术,有些人喜欢使用它们,而不是使用异常,但这超出了问题的范围。

关于c++ - 有没有实现不变式的通用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62504276/

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