簡體   English   中英

C++(和 ROS) - 包含與使用 set default 和 typedef 引用的前向聲明

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

我有兩個關於前向聲明的非常相關的問題,它們的優點和與#include的區別。 在閱讀它們之后,我仍然不清楚是否:

  • 使用來自 ROS 消息的 ConstPtr(像這樣)算作一個指針,並且可以(以某種方式)前向聲明,或者需要一個#include

  • void foo(const Eigen::Vector3d& scale={0.001, 0.001, 0.001}); 在 .h 文件中可以使用類似的東西(但這實際上並沒有編譯)

     namespace Eigen { class Vector3d; }

在所有其他#include之后的 .h 頂部,或者我是否應該使用正確的標題。

需要明確的是,第二個問題是事實scale有一個默認值,這實際上是我將始終在 .cpp 中使用的值。 這是我使用 Vector3d 的唯一實例。

我也相當確定前向聲明是否足夠,因此我也不需要在 .cpp 中包含正確的標頭,因為我只在方法中使用默認值。

X的前向聲明足以將X*X&用作函數參數或類成員,因為不需要類的完整定義即可使用其地址。

但是為了創建該類的對象,即使是具有默認值的對象,您將需要其定義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM