8-7 implements the operator of + +, while overloading the prefix
#include<bits/stdc++.h>using namespace std;class point{ public: point(int a=0,int b=0):x(a),y(b){ } point operator++ (){ x++;y++; return *this; }//前置 point operator++(int) { point z=*this; ++(*this); return z; } point operator-- (){ x--;y--; return *this; } point operator--(int) { point z=*this; --(*this); return z; } void show(){ cout<<x<<" "<<y<<endl; } int x,y;}; int main(){ point k(1,1); cout<<"k++ show:"<<endl; (k++).show(); cout<<"++k show:"<<endl; (++k).show(); cout<<"--k show:"<<endl; (--k).show(); cout<<"k-- show:"<<endl; (k--).show();}
8-8 observing the implementation of virtual functions and their derived conditions
#include<bits/stdc++.h>using namespace std;class BaseClass{ public: virtual void fn1(){ cout<<"Base Class fn1"<<endl; } void fn2(){ cout<<"Base Class fn2"<<endl; }}; class DerivedClass:public BaseClass{ public: void fn1(){ cout<<"Derived Class fn1"<<endl; } void fn2(){ cout<<"Derived Class fn2"<<endl; }};int main(){ DerivedClass k; BaseClass *k1=&k; k1->fn1(); k1->fn2(); DerivedClass *k2=&k; k2->fn1(); k2->fn2();}
8-10 overloading ' + ' on the friend function of Point
#include<bits/stdc++.h>using namespace std;class point{ public : point(int a=0,int b=0):x(a),y(b){ } friend point operator+( point k1, point k2); void show(); private : int x,y;}; void point::show(){ cout<<x<<" "<<y<<endl;}point operator+( point k1, point k2){ return point(k1.x+k2.x,k1.y+k2.y);}int main(){ point k1(1,2),k2(2,3),k3; k3=k1+k2; k1.show(); k2.show(); k3.show();}
C + + jobs-8