c++ - expected constructor, destructor, or type conversion before & token -


i'm getting mysterious error in project says:

expected constructor, destructor, or type conversion

it's not allowing me use overloaded operator<<. worked before made class (myvector) template

//myvector class //an implementation of vector of integers. template <class t> class myvector{ public:     //purpose: initialize object of type myvector     //parameters: none.     //returns: nothing.     myvector();      //------------------------------------------------     //purpose: initialize object of type myvector     //parameters: integer.     //returns: nothing.     //------------------------------------------------     myvector(int);      //purpose: destroys objects of type myvector     //parameters: none.     //returns: nothing     //------------------------------------------------     ~myvector();      //purpose: returns current size of myvector.     //parameters: none.     //returns: size.     int size() const;      //------------------------------------------------     //purpose: returns capacity of myvector.     //parameters: none.     //returns: int.     int capacity() const;      //------------------------------------------------     //purpose: removes entries of myvector.     //parameters: none.     //returns: nothing.     void clear();      //------------------------------------------------     //purpose: appends given integer vector.     //parameters: integer.     //returns: nothing.     void push_back(t);      //------------------------------------------------     //purpose: shows what's @ given position.     //parameters: integer index.     //returns: integer.     t at(int) const;      myvector(const myvector& b);     const myvector& operator=(const myvector&);      //------------------------------------------------  private:     int _size;     int _capacity;     int* head;      //purpose: increases capacity of myvector when it's      // capacity equal it's size. called push_back(int)     //parameters/returns: nothing.     void increase();      //purpose: copies given vector reference.      //param: myvector reference.     //returns: nothing.     void copy(const myvector&);      //purpose: frees myvector assignment.     void free(); };  template <class t> ostream& operator<<(ostream&, const myvector<t>); //this line giving me error.  #endif 

i have code operator in seperate file:

template <class t> ostream& operator<<(ostream& os, const myvector<t> v){     int n = v.size();     os << endl;     for(int = 0; i<n; i++){         os << v.at(i)<<endl;     }     return os; } 

i've looked @ other questions, none seem match mine. appreciated. thanks!

you need qualify ostream std as:

std::ostream& operator<<(std::ostream&, const myvector<t>);

and should passing vector const reference, rather const value.


Comments

Popular posts from this blog

php - What is the difference between $_SERVER['PATH_INFO'] and $_SERVER['ORIG_PATH_INFO']? -

fortran - Function return type mismatch -

queue - mq_receive: message too long -