C++ 46: Polymorphism part 2
Compile Time Polymorphism
//Testing that c++ perfor compile time polymorphism or not#include <iostream>
using namespace std;
class Unit{public: void showData() { cout << "Unit of class showData function: " << endl; } void Convert() { cout << "Unit Class Convert function" << endl; }};class Distance : public Unit{private: int F, I;
public: Distance(int f, int i) { F = f; I = i; } void showData() { cout << F << " feet and " << I << "Inches" << endl; } void Convert() { int z = F * 12 + I; cout << "Data of Distance Objectis :" << z << endl; }};class Time : public Unit{private: int M, H;
public: Time(int h, int m) { M = m; H = h; } void showData() { cout << H << " Hours and " << M << " minutes" << endl; } void Convert() { int z = H * 60 + M; cout << "Data of Distance Objectis :" << z << endl; }};
int main(){ Unit *p;
p = new Distance(5, 2); p->showData(); p->Convert();
Unit *q = new Time(4, 10); q->showData(); q->Convert();
return 0;}}Output:
Unit of class showData function:
Unit Class Convert function
Unit of class showData function:
Unit Class Convert functionVirtual Function
Virtual functions are used to achieve runtime
Example: Calling derived class functions using Base Class Pointer. To achieve this base class function which are overrited in derived class are declared as virtual in the base class.
//Testing that c++ perfor runtime polymorphism
#include <iostream>
using namespace std;
class Unit{public: virtual void showData() { cout << "Unit of class showData function: " << endl; } virtual void Convert() { cout << "Unit Class Convert function" << endl; }};class Distance : public Unit{private: int F, I;
public: Distance(int f, int i) { F = f; I = i; } void showData() { cout << F << " feet and " << I << "Inches" << endl; } void Convert() { int z = F * 12 + I; cout << "Data of Distance Objectis :" << z << endl; }};class Time : public Unit{private: int M, H;
public: Time(int h, int m) { M = m; H = h; } void showData() { cout << H << " Hours and " << M << " minutes" << endl; } void Convert() { int z = H * 60 + M; cout << "Data of Distance Objectis :" << z << endl; }};
int main(){ Unit *p;
p = new Distance(5, 2); p->showData(); p->Convert();
Unit *q = new Time(4, 10); q->showData(); q->Convert();
return 0;}Output:
5 feet and 2Inches
Data of Distance Objectis :62
4 Hours and 10 minutes
Data of Distance Objectis :250Testing the runtime Polymorphism
#include <iostream>
using namespace std;main(){ int age;
cout<<"Enter your age: "; cin>>age;
if(age>18){ cout<<"You can vote"; } else{ cout<<"You cannot vote"<<endl; } return 0;}Output:
Enter your age: 56
You can vote
Comments
Post a Comment