fork download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. class pracownik
  5. {
  6. private:
  7. std::string m_fullName;
  8. std::string m_adres;
  9. unsigned int m_nip;
  10. public:
  11. pracownik() {};
  12. virtual ~pracownik() {} // musi być
  13. //virtual void show(void);
  14. friend std::ostream & operator<<(std::ostream & os, const pracownik & x);
  15. };
  16.  
  17. class programista : virtual public pracownik
  18. {
  19. private:
  20. std::string m_language;
  21. public:
  22. programista() : pracownik() {};
  23. //virtual void show(void);
  24. friend std::ostream & operator<<(std::ostream & os, const programista & x);
  25. };
  26.  
  27. class piosenkarz : virtual public pracownik
  28. {
  29. private:
  30. int voisceStrenght;
  31. public:
  32. piosenkarz() : pracownik() {};
  33. //virtual void show(void);
  34. friend std::ostream & operator<<(std::ostream & os, const piosenkarz & x);
  35. };
  36.  
  37. std::ostream & operator<<(std::ostream & os, const pracownik & x)
  38. {
  39. os << "Imie i nazwisko: " << x.m_fullName << std::endl
  40. << "Adres: " << x.m_adres << std::endl
  41. << "NIP: " << x.m_nip << std:: endl;
  42.  
  43. return os;
  44. }
  45. std::ostream & operator<<(std::ostream & os, const programista & x)
  46. {
  47. os << (const pracownik &)x;
  48. os << "Jezyk: " << x.m_language << std::endl;
  49.  
  50. return os;
  51. }
  52. std::ostream & operator<<(std::ostream & os, const piosenkarz & x)
  53. {
  54. os << (const pracownik &)x;
  55. os << "Sila glosu: " << x.voisceStrenght << std::endl;
  56.  
  57. return os;
  58. }
  59.  
  60. int main()
  61. {
  62. const piosenkarz p1;
  63. std::cout<<p1<<std::endl;
  64. const programista p2;
  65. std::cout<<p2<<std::endl;
  66. const pracownik *tb[]={&p1,&p2};
  67. std::cout<<*(tb[0])<<std::endl;
  68. std::cout<<*(tb[1])<<std::endl;
  69. return 0;
  70. };
Success #stdin #stdout 0s 3300KB
stdin
Standard input is empty
stdout
Imie i nazwisko: 
Adres: 
NIP: 3077559768
Sila glosu: 134524145

Imie i nazwisko: 
Adres: 
NIP: 3074655973
Jezyk: 

Imie i nazwisko: 
Adres: 
NIP: 3077559768

Imie i nazwisko: 
Adres: 
NIP: 3074655973