Trying to overload <<
for inner class
ostream& elem::operator<<(ostream& cout_, const elem& ob)
Returns an error:
:: must be class or namespace name
The class elem
part of the set
class.
in the description area
friend ostream& operator << (ostream&, const elem&){};
All class code + function code (yes, I know there is a govnokod, I am correcting it now):
class set{ public: set():head(NULL),tail(NULL),size(0){}; set(int sz); // ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ set(const set &s); // ΠΊΠΎΠΏΠΈΡΡΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ //ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ set &operator =(const set &ob); //ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ int operator <(set &ob); //ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ int operator >(set &ob); //Π½Π°Π΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ int operator <(int el); //ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° int operator ==(set &ob); //ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΡ int operator !=(set &ob) {return !(*this==ob);} //Π½Π΅ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΡ //ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°ΠΌΠΈ friend set operator +(int x, set &ob) {return ob+x;} set operator +(int el) {add(el); return *this;} //Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° set operator +(set &ob); //ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² set operator &(set &ob); //ΠΏΠ΅ΡΠ΅ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ² set operator -(set &ob); //ΡΠ°Π·Π½ΠΎΡΡΡ set operator -(int x); //ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° set operator ^(set &ob); //ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ°Π·Π½ΠΎΡΡΡ set operator --(int x); //ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Ρ ΠΊΠΎΠ½ΡΠ° set operator --(); //ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΈΠ· Π½Π°ΡΠ°Π»Π° int size() {return size;} //ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° friend ostream& operator << (ostream&, const int&){}; private: int size; //ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° class elem{ //ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° private: int data; elem* next; public: friend class set; elem():next(NULL){}; elem(int x):next(NULL),data(x){}; void add(int x); //Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠΏΠΈΡΠΎΠΊ+ void del(int x); void clean(); elem* find(int x); friend ostream& operator << (ostream&, const elem&){}; }; elem *tail; //Ρ
Π²ΠΎΡΡ ΡΠΏΠΈΡΠΊΠ° elem *head; //Π³ΠΎΠ»ΠΎΠ²Π° ΡΠΏΠΈΡΠΊΠ° };
function code
ostream& set::elem::operator<<(ostream& cout_, const elem& ob) { cout_ << ob; return cout_; }