gpt4 book ai didi

c++ - C++ 命名空间后的类名

转载 作者:太空狗 更新时间:2023-10-29 19:38:40 25 4
gpt4 key购买 nike

C++ 新手

有一个命名空间,即紧随其后的几个类名

namespace abc {
class Cursor;
class BufferAllocator;
....
....
}

上面Cursor和BufferAllocator的类声明在这里做什么?

最佳答案

它只是表示“这些类存在于”命名空间 abc 中,而没有提供有关它们实现的任何信息。

这叫做前向声明

它可以用于:

  • 避免标题包含中的循环(当类 A 有类 B 的成员,类 B 有类 A 的成员时)
  • 减少类之间的依赖性(因为你可以有一个指向前向声明的类的成员指针,但不能直接有一个成员,因为编译器不知道类的大小,而没有它的实现细节,但是知道指针的大小)。这在 Pimpl idiom 中特别使用.

(这可能还有其他用途,但这些是我想到的最明显的)。

关于c++ - C++ 命名空间后的类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16918780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com