我遇到了一段看起来像这样的代码:
class SomeClass* GetSomeClass()
{
return _instanceOfSomeClass;
}
“class”关键字对返回类型的作用是什么?我无法找到解释其功能的任何地方。它是否仅仅指定它将SomeClass作为一个类来讨论,以防有某种模糊或类似的东西?我很困惑。
答案 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的实际接口。