这个问题已经在这里有了答案:




已关闭8年。






我实际上不知道我的问题叫什么,所以我没有太多运气来寻找解决方案。

我想将结构初始化为现有变量。

struct s { int i; };
s inst = { 7 }; // valid
inst = { 9 }; // invalid

我怎样才能实现这样的目标?

最佳答案

根据定义,您只能实例化一次实例。初始化对象后,您只能更改其状态。在您的示例中,假设您想更改对象inst的状态,使其数据成员持有值9,则可以将其分配给s对象的'i'数据成员:

inst.i = 9;

另一种选择是为您的实例分配一个临时的s实例。构造临时数据时,其数据成员的值应为9:
inst = s{9};

关于c++ - 初始化结构值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12881400/

10-10 20:44