sam*_*moz 7 c++ class definition
我正在更新一些代码,当我在标题中工作时,我遇到了以下行.
.
.
.
class HereIsMyClass;
.
.
.
Run Code Online (Sandbox Code Playgroud)
而已.它只是一行,在另一个更长的类定义之前.HereIsMyClass实际上是其他地方的另一个类,但我不明白为什么这行写在这里.它有什么作用?
Jar*_*Par 27
C++中的这一行是一个前向声明.它表示,在未来的某个时刻,可能存在一个名为HereIsMyClass的类.它允许您在完全定义之前在声明中使用类.
它有助于打破循环依赖类和头文件管理.
例如
class HereIsMyClass;
class Foo {
void Bar(HereIsMyClass* p1) ...
};
class HereIsMyClass {
void Function(Foo f1);
}
Run Code Online (Sandbox Code Playgroud)