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

时间:2015-04-20 17:49:45

标签: c++

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

class SomeClass* GetSomeClass()
{
  return _instanceOfSomeClass;
}

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

3 个答案:

答案 0 :(得分:21)

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

答案 1 :(得分:13)

用于消除歧义。

例如,假设您在同一(或外部)范围内有相同名称的变量,如下所示:

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

class SomeClass* GetSomeClass()
{
  return _instanceOfSomeClass;
}

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

答案 2 :(得分:9)

这是一份前瞻性声明。它允许你只是说"在我的程序中的某个地方有一个类SomeClass,为了防止重新整理而对该文件不可见#34;。

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