c++ - 为什么我不能在一个类的不同行中声明和定义一个成员变量?

标签 c++ class oop

如您所见,在“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/

相关文章:

java - 为什么在 Java 中的方法调用中间使用括号?

java - Java 温度计算器

java - 面向对象 : Does container contain bike or chair?

objective-c - 从类方法调用实例方法

c++ - 如何在 Visual Studio 操作中输出新行?

c++ - 寻找可以简化的过于复杂的 boolean 表达式的工具?

c++ - 在多个 cpp 文件上使用类/结构/union C++

oop - 复合 DTO 中的 DTO 应该通过主键还是通过对象引用相互引用?

c++ - 重复重新分配后出现段错误

Python - ctypes - 如何调用函数和访问结构字段?