2015-10-11 44 views
-1

我得到了一些我需要實現的h文件,但遇到了一個阻塞器。 我有一個類C++實現雙* getter

Class A 
{ 
    B** something; 
public: 
    const B** getSomething() const; 
} 

任何試圖實現它屬於錯誤 有沒有實現它作爲一種方法?如果沒有,那麼得到這個成員的正確方法是什麼? 解釋會很棒!

嘗試時:

const B** A::getSomething() const 
{ 
    return something; 
} 

錯誤:「不能型 'B **常量' 返回B型常量**

+0

提供了實際的錯誤,將幫助人們找到您的解決方案 – donkopotamus

+0

什麼是實際的錯誤?你想要實現什麼? –

+0

任何嘗試?喜歡,什麼嘗試?一個問題可能是你的指針不夠常量,儘管我不確定const的範圍是如何工作的。給我們的代碼,你的嘗試和你的錯誤,我們可以幫助你找出什麼是錯的。 – Cubic

回答

1

因爲A::something不是一個const的隱蔽左值可以申報。爲const:

const B** something; 

或宣佈的getSomething返回類型是非常量:

B** A::getSomething() const 
{ 
    return something; 
} 

或者更好宣佈它作爲一個參考:

B**& A::getSomething() const 
{ 
    return something; 
} 
+0

你的意思是'const B **的東西;'? – immibis