0

在下面的代码中,cm变量分配在堆栈上,并且addConstraints是方法的原型:

ConstraintManager cm(5);

void addConstraints(ConstraintManager& cm);

当我调用 addConstraints 时,我想重新初始化函数体内的 cm 变量。那就是调用它的构造函数,例如这样做,cm(3)以便将其重新初始化为包含 3 而不是 5。但是我无法做到这一点,我唯一能做的就是:

ConstraintManager temp(3);
cm = temp;

有没有办法以更简洁的方式实现这一目标?谢谢。

4

1 回答 1

0

是的,但很遗憾我无法修改课程

如果在类的公共接口中没有直接的方法来更改该成员,那么在我的书中,这意味着您不应该更改它。

如果必须,您已经拥有的就是这样做的方法,只是不那么冗长:

cm = ConstraintManager(3);
于 2012-07-14T23:18:50.930 回答