C++ new 后跟 class
C++ new followed by class
我和一个朋友正在研究一个古老的 C++ 代码库。这段代码中定义了一个CDelayEvent指针数组如下
class CDelayEvent* m_pDelayEventList[DEF_MAXDELAYEVENTS];
其中各种对象的分配方式如下
m_pDelayEventList[i] = new class CDelayEvent;
我的问题是在两行中都使用了关键字 class
。代码编译有和没有它的两行。
- 这是有效的 C++ 吗?它可以编译,但我们以前从未见过。
class
关键字在此上下文中的作用是什么?
- 是否safe/better 将其全部删除?它有什么改变吗?
我找不到关于这个问题的任何信息,因为搜索 "new class" 只会找到不相关的文章和问题。
你知道C吗?那你知道一个结构是怎么用的吗?并且您需要使用 struct
关键字,例如声明结构变量?
在 C++ 中结构和 classes 确实是一样的,C++ 需要 struct
和 class
关键字 可选所以结构或 class 可以用作类型。
因此在您的情况下,您可以使用 class CDelayEvent
或仅使用 CDelayEvent
,它们在语义上是相同的。
- Is this valid C++? It compiles, but we have never seen this before.
是的。使用它是可选的。
- What does the class keyword do in this context?
没什么特别的。
- Is it safe/better to remove it everyhwere? Does it change anything at all?
是的,删除它是安全的。那不会改变任何东西。
我和一个朋友正在研究一个古老的 C++ 代码库。这段代码中定义了一个CDelayEvent指针数组如下
class CDelayEvent* m_pDelayEventList[DEF_MAXDELAYEVENTS];
其中各种对象的分配方式如下
m_pDelayEventList[i] = new class CDelayEvent;
我的问题是在两行中都使用了关键字 class
。代码编译有和没有它的两行。
- 这是有效的 C++ 吗?它可以编译,但我们以前从未见过。
class
关键字在此上下文中的作用是什么?- 是否safe/better 将其全部删除?它有什么改变吗?
我找不到关于这个问题的任何信息,因为搜索 "new class" 只会找到不相关的文章和问题。
你知道C吗?那你知道一个结构是怎么用的吗?并且您需要使用 struct
关键字,例如声明结构变量?
在 C++ 中结构和 classes 确实是一样的,C++ 需要 struct
和 class
关键字 可选所以结构或 class 可以用作类型。
因此在您的情况下,您可以使用 class CDelayEvent
或仅使用 CDelayEvent
,它们在语义上是相同的。
- Is this valid C++? It compiles, but we have never seen this before.
是的。使用它是可选的。
- What does the class keyword do in this context?
没什么特别的。
- Is it safe/better to remove it everyhwere? Does it change anything at all?
是的,删除它是安全的。那不会改变任何东西。