返回类型 - C++ "class"关键字
"class" Keyword on Return Type - C++
我遇到了一段看起来像这样的代码:
class SomeClass* GetSomeClass()
{
return _instanceOfSomeClass;
}
"class"关键字对返回类型有什么作用?我找不到任何地方来解释它的功能是什么。它是否只是指定它将 SomeClass 作为一个类来谈论,以防存在某种歧义或其他内容?我很困惑。
class SomeClass
是引用类类型SomeClass
的简单方式(从技术上讲,它是详细的类型说明符)。通常,添加class
是多余的,两者是等效的。但是,如果存在同名的变量或函数,则有时需要解决歧义。
它用于消除歧义。
例如,假设您在相同(或外部)作用域中有一个同名的变量,如下所示:
int SomeClass; //SomeClass is declared to be variable here
class SomeClass* GetSomeClass()
{
return _instanceOfSomeClass;
}
如果没有 class
关键字,函数声明对编译器没有意义。class
关键字告诉编译器忽略变量声明,并查找类声明。
这是一个前向声明。它允许您只说"我的程序中某处有一个类 SomeClass,只是为了防止重新生成,它对该文件不可见"。
但是,无论何时实现此函数,该文件都必须具有类 SomeClass 的实际接口。
相关文章:
- Visual Studio 2015:Extern "C" 和 "export" 关键字
- C++中的"inline"关键字
- 如何确保C++函数在定义之前声明(如override关键字)
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- "Undefined class"作为is_base_of的论据
- 谷歌模拟和覆盖关键字
- 使用"class"关键字,后跟未声明的标识符
- 如何添加自定义关键字以 clang 格式被视为"class"?
- 返回类型 - C++ "class"关键字
- 为什么不使用class关键字就无法创建对象
- 当已经有"struct"时,在C++中包含'class'关键字的原因是什么?
- (SWIG c++ to Python)警告301:使用了class关键字,但不在c++模式下
- 如何在c++中使用class中的static关键字来模拟Python中@classmethod的行为
- 构造函数定义是否可以以 "class" 关键字为前缀?
- 为什么C++17在模板中有两个关键字(class和typename)用于相同的目的
- 前向类声明可与使用位置的class关键字互换
- 函数签名中的"class"关键字 - 它是标准C++吗?
- GCC和class关键字