c++ - Hiding pointers with references -
is thing hide pointers members setters use references?
class foo { bar* m_ptr; public : void setbar(bar& bar){m_ptr = &bar;} }; or preferable expose true type of referenced object in setter (and why) ?
void setbar(bar* bar){m_ptr = bar;} in fact, i'm using stl conteners not "reference friendly", have vectors of pointers class members prefer deal methods takes references. bad thing that?
edit :
stored members pointers, example fits better question :
class foo { std::vector<fooobserver *> m_observers; public : do prefer :
void addobserver(fooobserver* obs); or :
void addobserver(fooobserver& obs); ?
in both cases pointers should never null , assume responsibility of callers objects.
for me comes down semantics of type. if pointer masking member never intended null absolutely use reference in both input , output positions. if value can legally null though using pointer best approach
Comments
Post a Comment