如您所见,在“Demo”类中我声明了“id”。但是我不能在下一行中初始化它(我知道,我可以在同一行中完成它,但仍然如此)。对于主函数中的“a”,我可以做同样的事情。为什么???
#include <iostream>
using namespace std;
class Demo {
public:
int id;
id = 90;
int setID(int x)
{
id = x;
}
};
int main() {
int a;
a = 90;
Demo d;
d.setID(50);
cout<<a<<endl;
return 0;
}
最佳答案
函数体是一系列语句。类主体是一系列成员声明。大多数类型的语句不能进入类主体,因为它们不是有效的成员声明。如果类嵌套在函数中,则只能将“可运行代码”放入类中。
如果每次实例化类时都希望运行一段代码,请将其放在构造函数中。如果您希望一段代码只运行一次,那么在定义类时,在 C++ 中没有执行此操作的机制。
关于c++ - 为什么我不能在一个类的不同行中声明和定义一个成员变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53123656/