diff --git a/Virtual.cpp b/Virtual.cpp new file mode 100644 index 0000000..a720219 --- /dev/null +++ b/Virtual.cpp @@ -0,0 +1,80 @@ + + +#include + +using namespace std; + + + +class base { + +public: + + virtual void print() + + { + + cout << "print base class" << endl; + + } + + + + void show() + + { + + cout << "show base class" << endl; + + } +}; + + + +class derived : public base { + +public: + + void print() + + { + + cout << "print derived class" << endl; + + } + + + + void show() + + { + + cout << "show derived class" << endl; + + } +}; + + + +int main() +{ + + base* bptr; + + derived d; + + bptr = &d; + + + + // virtual function, binded at runtime + + bptr->print(); + + + + // Non-virtual function, binded at compile time + + bptr->show(); +} +