我和一个 friend 正在研究一个古老的 C++ 代码库。在这段代码中,定义了一个 CDelayEvent 指针数组,如下所示
class CDelayEvent* m_pDelayEventList[DEF_MAXDELAYEVENTS];
其中各种对象的分配方式如下
m_pDelayEventList[i] = new class CDelayEvent;
我的问题是在两行中都使用了关键字 class
。代码编译有和没有它的两行。
- 这是有效的 C++ 吗?它可以编译,但我们以前从未见过。
class
关键字在这种情况下有什么作用?- 将它全部移除是否安全/更好?它有什么改变吗?
我找不到关于这个问题的任何信息,因为搜索“new class”只能找到不相关的文章和问题。
最佳答案
你知道C吗?那你知道一个结构是怎么用的吗?并且您需要使用 struct
关键字,例如声明一个结构变量?
在 C++ 中,结构和类实际上是相同的,并且 C++ 需要 struct
和 class
关键字可选 所以结构或类可以用作类型。
因此在您的情况下,您可以使用 class CDelayEvent
或仅使用 CDelayEvent
,它们在语义上是相同的。
关于C++ new 后跟类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39998777/