C++ 中的“const class <class_name>&”是什么?

问题描述 投票:0回答:1

我在 Ardupilot 代码中偶然发现了这个成员函数声明:

void update(const class Aircraft &aircraft) override;

您可以在他们的代码库中随处看到它:link

在这种情况下,

const class <class_name>&
const <class_name>&
有什么区别?

c++
1个回答
0
投票

class Aircraft
是所谓的 详细类型说明符。 它很特别,因为它可以用来引用尚未声明的类:

int main() {
    class C* pointer;
}

例如,这是一个有效的 C++ 程序,尽管

class C
尚未在任何地方定义。

更流行的实现方式是通过“前向声明”:

class C;

int main() {
    C* pointer;
}

除了名称查找差异之外,

class C
C
是等效的。

© www.soinside.com 2019 - 2024. All rights reserved.