C++(和 ROS)- 包含与前向声明引用与设置默认值和 typedef

C++ (and ROS) - Include vs. forward declare of reference with set default and typedef

关于前向声明,我有两个非常相关的问题,它们的优点和与 #include 的区别。在阅读了它们之后,我仍然不清楚是否:

在所有其他 #include 之后的 .h 顶部,或者如果我应该使用正确的 header。

需要明确的是,第二个问题是 scale 有一个默认值,这实际上是我将在 .cpp 中始终使用的值。这是我使用 Vector3d 的唯一实例。

我也很确定前向声明是否足够,因此我也不需要在 .cpp 中包含正确的 header,因为我只在方法。

X 的前向声明足以使用 X*X& 作为函数参数或 class 成员,因为 [=不需要 17=] 就可以使用它的地址。

但是为了创建 class 的对象,即使是具有默认值的对象,您也需要它的定义。