class linkedlist_movies { private: class node { public: movie* data; node* next; }; node* head; public: linkedlist_movies() { head = null; } ~linkedlist_movies(); movie* searchbyid(const string& id); void add(const string& id, const string& name); void print(); node* findplace(); // <<<<<<<< func }; above linked list in .h file. want return pointer node. in .cpp file, won't let me following:
node* linkedlist_movies::findplace() { } and it's telling me: node undefined.
i know node private. so, how can return it?
you need qualify node, defining function outside of class:
linkedlist_movies::node* linkedlist_movies::findplace() { } note caller of function not able store pointer easily:
linkedlist_movies movies; linkedlist_movies::node* node = movies.findplace(); this give compiler error because linkedlist_movies::node private. however, might want.
it is possible them using auto though:
linkedlist_movies movies; auto node = movies.findplace(); or, equivalently, when passing deduced template argument:
template <typename t> void foo(t t); foo(movies.findplace());
Comments
Post a Comment