2013-02-17 38 views
-2

我只是想知道,如果我可以做這樣的事情:本身私有變量矢量

class apple 
{ 
public: "constructor and public method in here" 
private: 
    vector<*apple> allApple; 
} 

是這段代碼好嗎?

+1

如果它編譯並始終按預期方式運行,則可以。你有沒有試過編譯它? – 2013-02-17 21:58:26

+0

同時查看指針是如何聲明的。您使用星號和typename的順序是錯誤的。 – 2013-02-17 21:58:54

+0

這不好,它是'蘋果*'不''蘋果'。您試圖實現的模板類型是「指向蘋果」,其中的星星出現在類型名稱之後。 – SirDarius 2013-02-17 21:59:15

回答

0

你可能意味着指針的矢量同一類型,

vector<apple*> allApple; 

在這種情況下,是的,你可以,雖然你可能寧願保持smart pointers,如果這些都指向動態分配的對象。

+0

有什麼特別的原因,你爲什麼認爲智能指針比矢量更好? – 2013-02-17 22:05:39

+0

@RudiAksam智能指針比原始指針要好,如果它們指向動態分配的對象。但你保持矢量。只是一個智能指針的矢量。 – juanchopanza 2013-02-17 22:07:06

+0

啊。好的。我知道了。 thx – 2013-02-17 22:15:29