klasa pochodna wyświetlanie zawartości klasy bazowej za pomocą operator<<
Ostatnio zmodyfikowano 2014-01-05 21:21
noob643 Temat założony przez niniejszego użytkownika |
klasa pochodna wyświetlanie zawartości klasy bazowej za pomocą operator<< » 2014-01-05 18:44:52 witam!! mam taka klase. class base { private: int * b_x; int size; public: virtual void show( void ); base(); base( int x ); base( base & x ); virtual ~base(); base & operator =( base & x ); friend ostream & operator <<( ostream & os, base & obj ); }; class test_base : public base { private: int tb_x; public: virtual void show( void ); test_base(); test_base( int x ); friend ostream & operator <<( ostream & os, test_base & obj ); }; wyświetlanie zrobiłem sobie metodę show void base::show( void ) { for( int i = 0; i < size; i++ ) cout << b_x[ i ] << " "; cout << endl; } void test_base::show( void ) { base::show(); cout << tb_x << endl; } i to działa ale chciałbym uzyc do tego operator<< żeby to z cout działało. jak mam "test_base object" to napisze cout << object a nie object.show(); za pomoca operator<< udało mi sie wyświetlić jedynie zwartość jednej klasy czyli dla base tylko zawartość base, a dla test_base tylko jej nowe składowe. jak wewnątrz funkcji zaprzyjaźnionej odwołać się do innej funkcji zaprzyjaźnionej która jest powiązana z inna klasą jedyne co wymyśliłem to zamiast private dac protected |
|
pekfos |
» 2014-01-05 19:05:46 W czym problem? |
|
noob643 Temat założony przez niniejszego użytkownika |
» 2014-01-05 19:23:13 jak mam ostream & operator <<( ostream & os, base & obj ) { for( int i = 0; i < obj.size; i++ ) os << obj.b_x[ i ] << " "; os << endl; return os; }
ostream & operator <<( ostream & os, test_base & obj ) { os << obj.tb_x << endl; return os; }
to jak wywołać operator<< który jest dla klasy base. wewnątrz operator<< który jest dla klasy base_test jako że funkcje zaprzyjaźnione nie sa składowymi klasy nie wychodzi mi użycie zasięgu base:: |
|
pekfos |
» 2014-01-05 19:59:25 Nie możesz wywołać metody wirtualnej? Wtedy wystarczy jedno przeciążenie operatora. |
|
noob643 Temat założony przez niniejszego użytkownika |
» 2014-01-05 21:01:01 jak metodę wirtualną?? mam zrobić virtual friend?? |
|
pekfos |
» 2014-01-05 21:03:22 show().. |
|
noob643 Temat założony przez niniejszego użytkownika |
» 2014-01-05 21:21:41 ok, rozumiem |
|
« 1 » |