Virtual functions ensure that the code that manipulates objects of the base type can without change manipulate derived type objects as well. Virtual functions should however always be called using either a pointer or a reference. If we try to do so using an object a phenomenon called object slicing takes place.
class base { public: virtual void funct1(void); }; class derived : public derived { public: virtual void funct1(void); virtual void funct2(void); }; int main (int argc, char *argv[]) { base b; derived d; b = d; b.funct1(); //calls base::funct1() d.funct1(); //calls derived::funct1() }
About our authors: Team EQA
You have viewed 1 page out of 62. Your C++ learning is 0.00% complete. Login to check your learning progress.
Most popular
Questions index C Questions C++ Questions Win32 MFC COM/DCOM DLL Questions
Compilers & Editors
Download Visual Studio Download XCode Download Visual Studio Code Android studio install sdk Eclipse installer Best C compilers IDEs
Development system setup
Windows media creation tool MSDN subscription Ubuntu virtualbox
New updated posts
Why learn C? Calculate weighted average
Questions index C Questions C++ Questions Win32 MFC COM/DCOM DLL Questions
Compilers & Editors
Download Visual Studio Download XCode Download Visual Studio Code Android studio install sdk Eclipse installer Best C compilers IDEs
Development system setup
Windows media creation tool MSDN subscription Ubuntu virtualbox
New updated posts
Why learn C? Calculate weighted average