I am new to C ++ programming, I have doubts about the execution of some C ++ programs, i.e. how to achieve dynamic binding for a static member function. dynamic linking of normal member functions can be achieved by declaring member functions as virtual, but we cannot declare static member functions as virtual, so please help me. and see the example below:
#include <iostream> #include <windows.h> using namespace std; class ClassA { protected : int width, height; public: void set(int x, int y) { width = x, height = y; } static void print() { cout << "base class static function" << endl; } virtual int area() { return 0; } }; class ClassB : public ClassA { public: static void print() { cout << "derived class static function" << endl; } int area() { return (width * height); } }; int main() { ClassA *ptr = NULL; ClassB obj; ptr = &obj ; ptr->set(10, 20); cout << ptr->area() << endl; ptr->print(); return 0; }
In the above code, I assigned a Derived class object to a pointer and called the print () static member function, but it calls the Base class function in the way that I can achieve dynamic binding for the static member function.
nagaradderKantesh
source share