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

乔伊德维普·莫哈洪

如您所见,在“ 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;
}
安德烈·切尔努卡(Andrey Chernukha)

因为这是语言的工作方式。main是一个功能。在函数内部,命令被一个接一个地执行:

1)创建a类型的变量int2)将值90分配给a3)创建d类型的对象Demo依此类推。

class Demo { public: int id; int setID(int x) { id = x; } };

不是功能。这是一个类的声明。无非是对实体的描述。您不能在描述内执行命令。您可以说“这个班级有int a

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我不能在声明中定义静态字段?

为什么我不能在定义中定义变量?

为什么静态成员函数只能在类定义中声明为静态,而不能在其自身定义中声明为静态?

为什么我不能在PHP中为类变量定义连接字符串?

为什么我不能在类定义中直接初始化私有成员变量

为什么智能指针类型的成员变量不能在类的声明处初始化?

为什么我不能在 Vala 的类之外声明类(错误:结构的重新定义)?

为什么我不能在返回 const 的 bool 函数中为类成员变量赋值?C++

为什么我不能在任何方法之外修改类成员变量?

在Java中,为什么不能在父类中声明最终成员(不进行初始化),并在子类中设置其值?我该如何解决?

为什么我不能在类中初始化非常量静态成员或静态数组?

为什么不能在Ruby的单例类定义中访问类实例变量?

为什么我不能在 Java 的本地类中声明对象?

为什么我不能在 Chrome 中声明一个与函数体同名的 let 变量

为什么我不能在协议中声明动态变量

为什么我不能在类方法中使用预定义变量?

为什么我不能在类定义中实例化同一类的对象

为什么我不能在self是类的协议扩展中更改变量?

为什么我不能在React类组件中创建变量?

为什么我不能在Flow API Subscriber中从onComplete访问类变量

为什么我不能在zsh中定义一个名为path的只读变量?

为什么我不能在Angular 2中用方括号表示法定义变量

为什么不同于类的其他成员,我们为什么需要定义类的静态变量?

为什么在这个方法中声明这个变量会覆盖我的类成员(C++)?

为什么我不能在Assembly中声明一个使用已取消引用的变量的值的变量?

为什么我的类的自定义成员变量在其他类中不更新?

为什么我不能在addEventListener中调用类函数

为什么我不能在Python中更改类的属性

为什么我不能使用msvc在模板类中声明静态constexpr变量?