一个类名后的分号是做什么的?

Con*_*nor 2 c++

在我正在阅读的书中,我注意到这样的代码行:

namespace sf
{
class RenderWindow;
}

class StateStack;
class Player;

class State
{
    // Code for the class
};
Run Code Online (Sandbox Code Playgroud)

只有类,类名和分号的行是什么意思?

Cod*_*ice 10

这些是前瞻性声明.他们让下面的代码知道有与名称类RenderWindow,StateStackPlayer.当它看到使用这些名称时,这满足了编译器.稍后链接器将找到类的定义.

  • @Connor在A类使用B类而B类使用A类的情况下会产生优势.这需要一个前向声明,因为如果你在`Bh`中#include"Ah"`反之亦然,你得到一个无限循环以及同一类的重复定义. (2认同)