struct S { string s; }
void method()
{
const S s = { "s" };
s.s = "l"; // Error
}
我不明白为什么这里会产生编译错误。根据我的理解,构造结构引用变量const
应该使变量本身不可变(s = { "m" }
初始化后只有s
会产生错误),而不是结构本身(因此s.s = "l"
应该可以通过)。为什么const会使变量和结构都不可变?
答案 0 :(得分:3)
它不是“引用结构实例的变量”。没有间接关系。 s
的值为struct S
,其中包括其所有字段。