C++ new 后跟类

标签 c++ class syntax semantics

我和一个 friend 正在研究一个古老的 C++ 代码库。在这段代码中,定义了一个 CDelayEvent 指针数组,如下所示

class CDelayEvent* m_pDelayEventList[DEF_MAXDELAYEVENTS];

其中各种对象的分配方式如下

m_pDelayEventList[i] = new class CDelayEvent;

我的问题是在两行中都使用了关键字 class。代码编译有和没有它的两行。

  1. 这是有效的 C++ 吗?它可以编译,但我们以前从未见过。
  2. class 关键字在这种情况下有什么作用?
  3. 将它全部移除是否安全/更好?它有什么改变吗?

我找不到关于这个问题的任何信息,因为搜索“new class”只能找到不相关的文章和问题。

最佳答案

你知道C吗?那你知道一个结构是怎么用的吗?并且您需要使用 struct 关键字,例如声明一个结构变量?

在 C++ 中,结构和类实际上是相同的,并且 C++ 需要 structclass 关键字可选 所以结构或类可以用作类型。

因此在您的情况下,您可以使用 class CDelayEvent 或仅使用 CDelayEvent,它们在语义上是相同的。

关于C++ new 后跟类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39998777/

相关文章:

javascript - 返回 JavaScript 类值而不是对象引用(在 ES6 中)

c++ - 如何从另一个派生类访问派生类的成员?

javascript - 将 setTimeout 添加到带有回调的函数的语法

php - 找不到错误:/

c++ - for循环后面的分号是什么意思?为什么第一个循环语句中有一个j++?

c++ - 有条件地编译为 Win32 GUI 或 Linux 控制台应用程序

c++ - 在 const 成员初始化之前使用,这是 gcc 和 clang 的预期行为吗?

c++ - 在 Windows 启动时调用应用程序无法正常启动

c# - 在哪里可以找到用简码定义的美国所有州的类?

scala - Scala中的函数对象的varargs错误?