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

Popular posts from this blog

node.js - Bad Request - node js ajax post -

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -