是否可以在不实现的情况下声明一个类?(C++)

8 c++ class declaration definition forward-declaration

我知道这些问题似乎含糊不清,但我想不出任何其他方式来表达它,但是,是否有可能做到这样的事情:

#include<iostream>

class wsx;

class wsx
{
public:
wsx();
}

wsx::wsx()
{
std::cout<<"WSX";
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*itb 19

是的,这是可能的.以下只是声明wsx

class wsx;
Run Code Online (Sandbox Code Playgroud)

这种声明称为前向声明,因为当两个类相互引用时需要它:

class A;
class B { A * a; };

class A { B * b; };
Run Code Online (Sandbox Code Playgroud)

其中一个需要向前宣布.

  • 旁注:不仅在 2 个类相互引用的情况下需要它。例如,可以使用前向声明而不是包含标题来最小化依赖性。 (2认同)