什么是“class className;”单独用C ++做什么?

时间:2012-10-16 08:18:15

标签: c++

  

可能重复:
  C++ - Forward declaration

所以在我的头文件中,我有一个已定义/声明的类,其所有功能都名为用户

然后在.cpp源文件中靠近顶部class User;

我是c的新手,但在我调查的几个教程中找不到答案所以来到这里

它做了什么?

三江源。

3 个答案:

答案 0 :(得分:2)

它被称为前向声明,使编译器能够在不知道其内部的情况下识别该类。您只需通知编译器这样的类存在,并声明指向它的指针不会引发错误。

另一种方法是包含声明该类的相应头文件,但如果您只需要指向该类型的指针,则会过于沉重。

答案 1 :(得分:1)

这是一个所谓的"转发声明"它使编译器知道该类,而不实际定义它。请注意,这是C ++,而不是C。

答案 2 :(得分:0)

声明该类而不实际定义它。从这个意义上讲,它与以下内容没有什么不同:

void doSomething(void);

该原型告诉编译器doSomething()存在,但实际上没有指定它的作用。

它通常用于需要类存在的地方(所以你可以用某种方式引用它),但你不需要知道它的属性。