我遇到了一段看起来像这样的代码:
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关键字告诉编译器忽略变量声明,并查找类声明.
这是一个前瞻性声明.它允许你只是说"我的程序中有某个类SomeClass,这个文件是不可见的,以防止重新加工".
但是,无论何时实现此函数,该文件都必须具有SomeClass类的实际接口.