解引用指针会使代码非常难以阅读。我通常所做的就是引用指向对象并使用引用。例如:对指向对象的引用
shared_ptr<std::vector<int> > sp = get_sp_to_vector();
std::vector<int>& vec = *sp;
...
vec.push_back(5);
我不知道这是否是一种好的做法。它有什么缺点吗?
更新:要完成这个例子,我定义get_sp_to_vector()
方式如下:
shared_ptr<std::vector<int> > get_sp_to_vector()
{
// create a vector and send back a shared pointer pointing at it
shared_ptr<std::vector<int> > sp(new std::vector<int>);
sp->push_back(1); sp->push_back(3);
return sp;
}
我也是这样。对我来说这似乎很合理,当我有某种指针时,但我真正想与之合作的是它指向的东西。为避免不同类型变量之间的名称冲突引用相同范围内的相同值,我使用名称,如“foo”作为引用或实际对象,“p_foo”作为指针,“ap_foo”作为std :: auto_ptr '和'sp_foo'作为'boost :: shared_ptr'或'std :: tr1 :: shared_ptr'。 – Wyzard 2010-01-20 03:32:23
似乎最近有一种趋势回答评论中的问题......一束紫罗兰。男人起来。如果可能的话,我会投票评论这一评论 - 不是因为我认为答案不好,而是因为这是一个答案,因此不是*评论*。 – paxos1977 2010-01-20 03:55:51
@ceretullis:不,我的评论没有解决它是否有任何缺点的问题。这就是为什么我选择写评论而不是答案。 – Wyzard 2010-01-20 03:59:09