Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Virtual Function Example
// Example with a Abstract Base Class // Note the different behavior when the // base class function is declared virtual // and when it is not... #include <iostream> using namespace std; class Cat { public: void whatAmI() const {cout<<"\n I am a Cat\n";}; //virtual void whatAmI() const = 0; }; class OrangeCat : public Cat { public: virtual void whatAmI() const {cout<<"\n I am an Orange Cat\n";}; }; class CuteOrangeCat : public OrangeCat { public: void whatAmI() const {cout<<"\n I am a Cute Orange Cat\n";}; }; class FuzzyCuteOrangeCat : public CuteOrangeCat { public: void whatAmI() const {cout<<"\n I am a Fuzzy Cute Orange Cat\n";}; }; void printWhatAmI(const Cat & cat) { cat.whatAmI(); } void printWhatAmI2(const OrangeCat & cat) { cat.whatAmI(); } int main() { cout << endl << " *** Example Program for Virtual Functions *** " << endl; OrangeCat myOrangeCat; CuteOrangeCat myCuteOrangeCat; FuzzyCuteOrangeCat myFuzzyCuteOrangeCat; cout << endl << "Calling printWhatAmI with OrangeCat instance... " << endl; printWhatAmI(myOrangeCat); cout << endl << "Calling printWhatAmI with CuteOrangeCat instance... " << endl; printWhatAmI(myCuteOrangeCat); cout << endl << "Calling printWhatAmI with FuzzyCuteOrangeCat instance... " << endl; printWhatAmI(myFuzzyCuteOrangeCat); cout << endl << "Calling printWhatAmI2 with OrangeCat instance... " << endl; printWhatAmI2(myOrangeCat); cout << endl << "Calling printWhatAmI2 with CuteOrangeCat instance... " << endl; printWhatAmI2(myCuteOrangeCat); cout << endl << "Calling printWhatAmI2 with FuzzyCuteOrangeCat instance... " << endl; printWhatAmI2(myFuzzyCuteOrangeCat); return 0; }
run
|
edit
|
history
|
help
0
auto Keyword Example
MPL 2-0
Dequeue Array-Based Example
Pointer array
Member inheritance
Throttle Example (Send two requests every two seconds)
Variable declarations in while loop conditions are also C++-only.
You can't erase a std::unordered_map::local_iterator
Tree Traversal and Node
vector destruction - clang