gpt4 book ai didi

C++ 什么时候值得前向声明?

转载 作者:行者123 更新时间:2023-11-28 02:47:36 26 4
gpt4 key购买 nike

我是 C++ 世界的新手,了解到进行前向声明是一种很好的做法。但它总是好的吗?

我正在寻找有关何时进行前向声明(forward declaration)是好的做法以及何时不好的指南,但我真的找不到任何指南。什么时候该用,什么时候不用,有没有客观案例,还是完全由开发者决定?

最佳答案

正如 juanchopanza 所提到的,一般来说,当您不需要完整的类定义时,您可以使用前向声明 - 基本上当您不需要知道大小成员 相关类的。它允许您删除编译时依赖项,这可以简化和加速编译。

例如,如果你只使用指向一个类的指针,那么你就不需要再了解它了。但是,如果您调用该类的方法或存储它的实际实例,那么您需要了解该类的全部详细信息。

class A;  // forward declaration

class B {
...
void func1(A*);
}

class C {
...
A m_inst;
}

在上面,C 不会编译,因为它需要在声明时知道 A 的大小。但是,func1 很好,因为它只使用指向 A 的指针,因此不需要知道大小或实现。

Herb Sutter有一些信息和解释,但请注意,如果您是初学者,其中一些信息有点高级。

关于C++ 什么时候值得前向声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23935185/

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