【发布时间】:2013-04-18 17:01:53
【问题描述】:
用使用引用的setter隐藏指针成员是好事吗?
class Foo
{
Bar* m_ptr;
public :
void setBar(Bar& bar){m_ptr = &bar;}
};
或者最好在 setter 中公开被引用对象的真实类型(以及为什么)?
void setBar(Bar* bar){m_ptr = bar;}
事实上,我使用的是非“引用友好”的 stl 竞争者,因此我将指针向量作为类成员,但我更喜欢处理接受引用的方法。这样做是坏事吗?
编辑:
存储的成员是指针,这个例子更适合我的问题:
class Foo
{
std::vector<FooObserver *> m_observers;
public :
你喜欢这个吗:
void addObserver(FooObserver* obs);
或者这个:
void addObserver(FooObserver& obs);
?
在这两种情况下,指针都不应该为 NULL,我认为这是调用者对象的责任。
【问题讨论】: