c++作業-8
阿新 • • 發佈:2018-05-03
mes end out 重載 clu namespace include AC names
8-7
實現++ --的運算符,同時重載前後綴
#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
觀察實現虛函數及其派生的條件
#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
在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++作業-8