1 / 9

Polymorphism

Polymorphism. #include &lt; iostream &gt; using namespace std; class Base //base class { public: void show() //normal function { cout &lt;&lt; “Base<br>”; } }; class Derv1 : public Base //derived class 1 { public: void show() { cout &lt;&lt; “Derv1<br>”; } };

yorick
Download Presentation

Polymorphism

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Polymorphism

  2. #include <iostream> using namespace std; class Base //base class { public: void show() //normal function { cout << “Base\n”; } }; class Derv1 : public Base //derived class 1 { public: void show() { cout << “Derv1\n”; } }; class Derv2 : public Base //derived class 2 { public: void show() { cout << “Derv2\n”; } }; int main() { Derv1 dv1; //object of derived class 1 Derv2 dv2; //object of derived class 2 Base* ptr; //pointer to base class ptr = &dv1; //put address of dv1 in pointer ptr->show(); //execute show() ptr = &dv2; //put address of dv2 in pointer ptr->show(); //execute show() return 0; }

  3. Output • Base • Base • Base

  4. #include <iostream> using namespace std; class Base //base class { public: Virtual void show() //normal function { cout << “Base\n”; } }; class Derv1 : public Base //derived class 1 { public: void show() { cout << “Derv1\n”; } }; class Derv2 : public Base //derived class 2 { public: void show() { cout << “Derv2\n”; } }; int main() { Derv1 dv1; //object of derived class 1 Derv2 dv2; //object of derived class 2 Base* ptr; //pointer to base class ptr = &dv1; //put address of dv1 in pointer ptr->show(); //execute show() ptr = &dv2; //put address of dv2 in pointer ptr->show(); //execute show() return 0; }

  5. Output • Base • Derv1 • Derv2

  6. #include <iostream> using namespace std; class Base //base class { public: Virtual void show() //normal function { cout << “Base\n”; } }; class Derv1 : public Base //derived class 1 { public: void show() { cout << “Derv1\n”; } }; class Derv2 : public Base //derived class 2 { public: void show() { cout << “Derv2\n”; } }; ´void fun(Base & r) { r.show() } int main() { Derv1 dv1; //object of derived class 1 Derv2 dv2; //object of derived class 2 fun (dv1); fun (dv2); return 0; }

  7. output • Derv1 • Derv2

  8. Virtual destructor class Base { public: ~Base() //non-virtual destructor }; class Derv : public Base { public: ~Derv() { cout << “Derv destroyed\n”; } }; int main() { Base* pBase = new Derv; delete pBase; return 0; }

  9. output • Base destroyed

More Related