返回类型的"class"关键字 - C++

Mic*_*ney 20 c++

我遇到了一段看起来像这样的代码:

class SomeClass* GetSomeClass()
{
  return _instanceOfSomeClass;
}
Run Code Online (Sandbox Code Playgroud)

"class"关键字对返回类型的作用是什么?我无法找到解释其功能的任何地方.它是否仅仅指定它将SomeClass作为一个类来讨论,以防有某种模糊或类似的东西?我很迷惑.

Mik*_*our 21

class SomeClass是一种引用类类型的简便方法SomeClass(从技术上讲,它是精心设计的类型说明符).通常,添加class是多余的,两者是等价的.但是,如果存在具有相同名称的变量或函数,有时需要解决歧义.


Naw*_*waz 13

它用于消除歧义.

比如说,如果在同一个(或外部)范围内有相同名称的变量,则如下所示:

int SomeClass; //SomeClass is declared to be variable here

class SomeClass* GetSomeClass()
{
  return _instanceOfSomeClass;
}
Run Code Online (Sandbox Code Playgroud)

如果没有class关键字,函数声明对编译器没有意义.该class关键字告诉编译器忽略变量声明,并查找类声明.


Dav*_*aim 9

这是一个前瞻性声明.它允许你只是说"我的程序中有某个类SomeClass,这个文件是不可见的,以防止重新加工".

但是,无论何时实现此函数,该文件都必须具有SomeClass类的实际接口.