2013-02-17 20 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