diff --git a/ch21/more_fancy b/ch21/more_fancy index ff69941..df9e0e5 100755 Binary files a/ch21/more_fancy and b/ch21/more_fancy differ diff --git a/ch21/pointer_virtual b/ch21/pointer_virtual index e30b16b..166657e 100755 Binary files a/ch21/pointer_virtual and b/ch21/pointer_virtual differ diff --git a/ch23/reference_virtual b/ch23/reference_virtual new file mode 100755 index 0000000..b832569 Binary files /dev/null and b/ch23/reference_virtual differ diff --git a/ch23/reference_virtual.cc b/ch23/reference_virtual.cc new file mode 100644 index 0000000..244efb3 --- /dev/null +++ b/ch23/reference_virtual.cc @@ -0,0 +1,57 @@ +#include + +using namespace std; + +class FirstClass { + public: + void print1() { + cout << "FirstClass::print1()" << endl; + } + virtual void print2() { + cout << "FirstClass::print2()" << endl; + } + void print3() { + print1(); + print2(); + cout << endl; + } +}; + +class SecondClass : public FirstClass { + public: + void print1() { + cout << "SecondClass::print1()" << endl; + } + virtual void print2() { + cout << "SecondClass::print2()" << endl; + } +}; + +class ThirdClass : public SecondClass { + public: + void print1() { + cout << "ThirdClass::print1()" << endl; + } + virtual void print2() { + cout << "ThirdClass::print2()" << endl; + } +}; + +int main(int argc, char **argv) { + FirstClass f1; + f1.print1(); + f1.print2(); + f1.print3(); + + SecondClass f2; + f2.print1(); + f2.print2(); + f2.print3(); + + ThirdClass f3; + f3.print1(); + f3.print2(); + f3.print3(); + + return 0; +} diff --git a/ch25/design_pattern.cc b/ch25/design_pattern.cc index 31d7110..91bfc03 100644 --- a/ch25/design_pattern.cc +++ b/ch25/design_pattern.cc @@ -99,7 +99,3 @@ class IntSetList : public IntSet { Node *first; }; - - - -