【发布时间】:2021-08-19 16:02:09
【问题描述】:
考虑以下表示具有上限和下限的整数参数的类:
class Parameter
{
protected:
int value;
int minval;
int maxval;
};
我有一个参数对象列表。有时,参数的 minval/maxval 将是列表中另一个参数的值。其他时候,它们只是整数文字。据我了解,我可以将 minval/maxval 设为对另一个参数值的引用或整数文字,但不能同时使用两者,因为 int& != int。
我该如何解决这个问题?
【问题讨论】:
-
如果一个
Parameter的value发生变化,改变了其他一些Parameter的maxval,而现在第二个Parameter的value无效,会发生什么? -
首先,我要定义一个联合类型“IPU”,由一个 int 和一个 Parameter* 组成。然后,我会采用约定,当你想像使用 int 一样使用这种类型时,将 Parameter* 设为 NULL;这样,给定一个 IPU,您可以轻松地将其解码为整数,例如,“val = ipu.parameter == NULL ? ipu.int : ipu.parameter”。有意义吗?
-
如果它们是
const引用,它们可以在构造函数中初始化 - 并且可以引用文字。诀窍是编写执行初始化所需的一组构造函数(带有初始化列表)。如果您需要以某种方式重新安装引用,请创建一个新对象(因为引用只能在创建时初始化,并且永远不会重新安装)。 -
"我有一个 Parameter 对象列表。有时,Parameter 的 minval/maxval..." sometimes 是否意味着在一个列表中或为每个参数类型不同的列表?
-
如果/当有循环引用时会发生什么?