fork download
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4.  
  5. class PhoneNumber
  6. {
  7. protected:
  8. int area;
  9. long number;
  10. public:
  11. friend istream& operator>>(istream& is, PhoneNumber &p);
  12. friend ostream& operator<<(ostream& os, PhoneNumber &p);
  13. };
  14.  
  15. istream& operator>>(istream& is, PhoneNumber &p)
  16. {
  17. if (is==cin)
  18. cout << "Enter area code : ";
  19. is >> p.area;
  20. if (is==cin)
  21. cout << "Enter number telephone number : ";
  22. is >> p.number;
  23. return is;
  24. };
  25.  
  26. ostream& operator<<(ostream& os, PhoneNumber &p)
  27. {
  28. return os << p.area<<"-"<<p.number;
  29. };
  30.  
  31.  
  32. class IntPhoneNumber:public PhoneNumber
  33. {
  34. protected:
  35. int reg;
  36. public:
  37. friend istream& operator>>(istream& is, IntPhoneNumber &p);
  38. friend ostream& operator<<(ostream& os, IntPhoneNumber &p);
  39. };
  40.  
  41. istream& operator>>(istream& is, IntPhoneNumber &p)
  42. {
  43. if (is==cin)
  44. cout << "Enter area code : ";
  45. is >> p.reg;
  46. return is >> static_cast<PhoneNumber&>(p);
  47. };
  48. ostream& operator<<(ostream& os, IntPhoneNumber &p)
  49. {
  50. return os <<"("<<p.reg<<")"<< static_cast<PhoneNumber&>(p) ;
  51. };
  52.  
  53. int main() {
  54. // your code goes here
  55. PhoneNumber n,n2;
  56. cout<< "Request phone number"<<endl;
  57. cin >> n;
  58. cout <<n<<endl;
  59. ifstream ifs("test.txt"); // just to check that in this case there is no cout
  60. ifs >> n2;
  61.  
  62. cout<< "Request phone int number"<<endl;
  63. IntPhoneNumber ni;
  64. cin>>ni;
  65. cout <<ni<<endl;
  66.  
  67. return 0;
  68. }
Success #stdin #stdout 0s 3280KB
stdin
1 2345
32 2 3456
stdout
Request phone number
Enter area code : Enter number telephone number : 1-2345
Request phone int number
Enter area code : Enter area code : Enter number telephone number : (32)2-3456