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
Post a Comment