C ++ new后跟class

时间:2016-10-12 12:35:48

标签: c++ class syntax semantics

我和朋友正在研究一个古老的C ++代码库。在此代码中,CDelayEvent指针数组定义如下

class CDelayEvent* m_pDelayEventList[DEF_MAXDELAYEVENTS];

并且其中的各种对象按以下方式分配

m_pDelayEventList[i] = new class CDelayEvent;

我的问题是在两行中使用关键字class。该代码使用和不使用它来编译这两行。

  1. 这是有效的C ++吗?它编译,但我们以前从未见过这个。
  2. class关键字在此上下文中的作用是什么?
  3. 每隔一段时间删除它是否安全/更好?它会改变什么吗?
  4. 我找不到任何关于这个问题的信息,因为我正在寻找新课程"只找到无关的文章和问题。

2 个答案:

答案 0 :(得分:5)

你知道C吗?然后你知道如何使用结构?而且,例如,您需要使用struct关键字声明结构的变量?

在C ++中,结构和类是完全相同的,C ++需要structclass关键字可选,因此可以使用结构或类作为一种类型。

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

答案 1 :(得分:3)

  
      
  1. 这是有效的C ++吗?它编译,但我们以前从未见过这个。
  2.   

是。可以选择使用它。

  
      
  1. class关键字在此上下文中的作用是什么?
  2.   

没什么特别的。

  
      
  1. 每隔一段时间删除它是否安全/更好?它会改变什么吗?
  2.   

是的,删除它是安全的。这不会改变任何事情。