gpt4 book ai didi

c++ - 您是否考虑多个初始化步骤 "poor form"?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:35 27 4
gpt4 key购买 nike

我正在用 C++ 编写在方格上运行的物理模拟(伊辛模型)。我的程序的核心是我的 Ising 类,它有一个构造函数,它调用格子的行和列维度。我还有另外两种方法来设置系统的其他参数(温度和初始状态),必须在系统进化之前调用!因此,例如,示例程序可能如下所示

int main() {
Ising system(30, 30);
system.set_state(up);
system.set_temperature(2);

for(int t = 0; t < 1000; t++) {
system.step();
}

return 0;
}

如果 system.set_*() 方法未在 system.step() 之前调用,则 system.step() 会抛出异常,提醒用户注意该问题。我以这种方式实现它以简化我的构造函数;这是不好的做法吗?

最佳答案

建议尽可能将所有强制参数放在构造函数中(当然也有异常(exception),但这些应该很少见 - I have seen one real-world example 到目前为止)。通过这种方式,您可以让您的类(class)使用起来更轻松、更安全。

另请注意,通过简化您的构造函数,您反而会使客户端代码更加复杂,这在我看来是一个糟糕的权衡。构造函数只编写一次,但调用者代码可能需要多次编写(增加了要编写的代码量和出错的机会)。

关于c++ - 您是否考虑多个初始化步骤 "poor form"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4657618/

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