为什么我不能在 main 函数中更改类的公共变量

why i can't change a public variable of a class in the main function

本文关键字:变量 不能 main 函数 为什么      更新时间:2023-10-16

[在第14行,其中f().i = 10,Xcode说表达式不可分配,为什么?违法吗?

class A{
public:
    int i;
    A():i(0){}
};
A f()
{
    A a;
    return a;
}
int main() {
    f().i = 10;
    return 0;
}

f()生成一个临时的。C++不允许分配给临时成员。从形式上讲,f().i是一个 xvalue,而赋值需要一个左值

无论如何,这样的任务将毫无意义,因为临时任务很快就会被摧毁。