2011-05-18 80 views
3

當我想要一個函數返回一個我剛剛定義的struct類型的向量時,我在設置函數時遇到了麻煩。編譯器提供了「使用未聲明的標識符」錯誤。C++類 - 如何從函數返回自定義類型的向量?

在.h文件:(假設沒有錯誤)

struct workingPoint; 

public: 

vector<workingPoint>calculateWorkingPointCloud(); 

而在.cpp文件:

struct DeltaKinematics::workingPoint { 
    int x, y, z; 
    //more stuff to come 
}; 

vector<workingPoint> DeltaKinematics::calculateWorkingPointCloud(){ //error here is "Use of undeclared identifier 'workingPoint' 

} 

看來,編譯器不知道workingPoint是什麼,儘管它在函數之前被聲明瞭嗎?

+0

@DeadMG和@mkaes都解決了我的問題。在閱讀@mkaes問題的答案後,我也將我的結構聲明移到了頭文件中,這看起來像是最佳實踐。希望這可以幫助別人:) – 2011-05-18 12:03:59

回答

3

這只是一個查找問題。您需要完全限定名稱,例如
vector<DeltaKinematics::workingPoint> DeltaKinematics::calculateWorkingPointCloud(){...

我問了關於這個問題的類似問題here。也許這對你也很有趣。

+0

謝謝你的工作:),這是一個很好的完整答案你有你的問題,非常豐富。 – 2011-05-18 11:59:48

3

您定義了一個結構DeltaKinematics::workingPoint,然後嘗試返回結構workingPoint。你需要明確的資格。

相關問題