用使用引用的设置器隐藏指针成员是一件好事吗?
class Foo
{
Bar* m_ptr;
public :
void setBar(Bar& bar){m_ptr = &bar;}
};
还是最好在设置器中公开引用对象的真实类型(以及为什么)?
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,我认为这是调用者对象的责任。