fork download
  1. #include<iostream>
  2. using namespace std;
  3. class Vehicle
  4. {
  5. private:
  6. int speed;
  7. string color;
  8. int registration_number;
  9. public:
  10.  
  11. Vehicle()
  12. {
  13. int sp,reg;
  14. string col;
  15. cout<<"Enter Speed : ";
  16. cin>>sp;
  17. cout<<"Enter Color : ";
  18. cin>>col;
  19. cout<<"Enter Registration Number : ";
  20. cin>>reg;
  21. speed = sp;
  22. color = col;
  23. registration_number = reg;
  24. }
  25. virtual void show()
  26. {
  27. cout<<"Speed : "<<speed<<endl;
  28. cout<<"Color : "<<color<<endl;
  29. cout<<"Registration Number : "<<registration_number<<endl;
  30. }
  31. };
  32. class MotorVehicle : public Vehicle
  33. {
  34. private:
  35. int noOfwheels;
  36. int noOfDoors;
  37. public:
  38. MotorVehicle()
  39. {
  40. int w,d;
  41. cout<<"Enter No of Wheels : ";
  42. cin>>w;
  43. cout<<"Enter No of Doors : ";
  44. cin>>d;
  45. noOfwheels=w;
  46. noOfDoors=d;
  47. }
  48. void show()
  49. {
  50. cout<<"No of Wheels : "<<noOfwheels<<endl;
  51. cout<<"No of Doors: "<<noOfDoors<<endl;
  52. }
  53. };
  54. class Car : public MotorVehicle
  55. {
  56. private:
  57. string brand;
  58. public:
  59. Car()
  60. {
  61. string br;
  62. cout<<"Enter Brand : ";
  63. cin>>br;
  64. brand=br;
  65. }
  66. void show()
  67. {
  68. cout<<"Brand : "<<brand<<endl;
  69. }
  70. };
  71. int main()
  72. {
  73. Car obj1;
  74. Vehicle* ptr = &obj1;
  75. ptr->show();
  76. static_cast<MotorVehicle*>(ptr)->show();
  77. static_cast<Car*>(ptr)->show();
  78. }
Success #stdin #stdout 0s 4320KB
stdin
5
red
55
4
4
toyota
stdout
Enter Speed : Enter Color : Enter Registration Number : Enter No of Wheels : Enter No of Doors : Enter Brand : Brand : toyota
Brand : toyota
Brand : toyota