具有多态性的对象声明中的逗号
Comma in object declaration with polymorphism
所以最近我参加了一次考试,在考试中,我在main((函数中得到了一些代码(除其他外(,我应该检查代码是否正确。我不记得确切的代码,但它是这样的。
Base* b = new Derived(), x;
现在我知道Base* b = new Derived()
是做什么的,但我从未见过|使用逗号X段代码。像什么?我在哪里可以找到一些材料来研究它?
通常,可以在同一行上声明多个实体,用逗号分隔。初始 decl-specifier-seq 适用于要声明的所有实体。每个实体都有自己的初始化声明器。
在您的示例中,decl-specifier-seq 是 Base
,这意味着所有被声明的变量都具有与 Base
有关的类型。在 decl-specifier-seq 之后,有两个 init-declarator,即 *b = new Derived()
和 x
,用逗号分隔。请注意,*
不是 decl-specifier-seq 的一部分,因此它仅适用于它所在的一个 init 声明符。因此,您的声明等同于:
Base *b = new Derived();
Base x;
相关文章:
- Arduino C++在构造函数中用参数声明对象数组
- 为什么我在声明对象数组时不能使用 -> 运算符?
- 如何在 if 语句中声明对象并在任何我想的地方使用它?
- 如何使用unique_ptr和make_unique正确声明对象数组
- 声明对象时,如何在C 中修复C2065错误
- 声明对象而不调用默认构造函数
- 一旦对象设置为 null,用于声明对象的堆大小的变量就设置为 null?
- 我可以使用名称而不是类型来声明对象文字吗?
- 在制作(Qt等)GUI时声明对象
- 在基本的GUI编程中,在哪里声明对象和方法
- 同时使用模板和参数声明对象
- "Undefined reference to"使用双模板类声明对象时出错
- 在头文件 C++ 中声明对象
- 在其类中声明对象
- C 可以通过使用要求其为某个类别的对象来声明对象
- 声明对象
- (C++)如何基于条件声明对象类成员
- 使用变量声明对象的名称
- C++ OOP 体系结构:决定是从基类声明对象还是继承基类
- 在声明对象之前在全局函数中使用类的成员函数