我對C++很新,所以這個問題聽起來很愚蠢,但即使我搜索了一段時間,但找不到答案。我使用ROS環境,但我的問題應該是一個普通的C++問題,所以我決定在這裏發佈它。C++在構造函數中使用類成員時未定義的引用
我有兩個碼
1)
ros::Duration max_storage_time = ros::Duration().fromNSec(1ULL * 1000000000LL);
tf::TimeCache odometryCache(max_storage_time);
2)
tf::TimeCache odometryCache(ros::Duration max_storage_time = ros::Duration().fromNSec(1ULL * 1000000000LL));
第二個編譯,而第一一個沒有。對我來說,似乎是完全一樣的。第一個代碼錯誤是: 未定義參考tf::TimeCache::TimeCache(ros::Duration)
TF :: TimeCache的文檔可在http://docs.ros.org/jade/api/tf/html/c++/classtf_1_1TimeCache.html#acca87a70aeb9c3573cdbfec26f6bfe23
發現可能有人請告訴我,我缺少的是什麼?代碼段和第一個爲什麼不能編譯的區別在哪裏?
在此先感謝!
當你在'ros :: Duration max_storage_time = ros :: Duration()。from NSec(1ULL * 1000000000LL)''時,你在構造函數調用中做了什麼?你有沒有複製'ros :: Duration max_storage_time ='部分? – NathanOliver
是的,我相信,第二個(只使用一行)的作品。 – YeahScience