面向物件實驗二(運算子過載)
阿新 • • 發佈:2019-02-19
一、實驗目的
1、掌握成員函式過載運算子。
2、掌握友元函式過載運算子。
3、理解並掌握引用在運算子過載中的作用。
二、實驗內容
1、掌握成員函式過載運算子。
2、掌握友元函式過載運算子。
3、理解並掌握引用在運算子過載中的作用。
二、實驗內容
1、定義空間中的點類(有x,y,z座標),並重載其++和—運算子。編寫主函式對該類進行應用。
#include<iostream> using namespace std; class Point { private: int x,y,z; public: Point(int a=0,int b=0,int c=0); Point operator ++(); Point operator ++(int); Point operator --(); Point operator --(int); void print(); }; int main() { Point ob1(2,3,4),ob2; ++ob1; ob1.print(); ob2=ob1++; ob2.print(); ob1.print(); --ob1; ob1.print(); ob2=ob1--; ob2.print(); ob1.print(); return 0; } Point::Point(int a, int b,int c) { x=a; y=b; z=c; } void Point::print() { cout<<'('<<x<<','<<y<<','<<z<<')'<<endl; } Point Point::operator ++() { ++x; ++y; ++z; return *this; } Point Point::operator ++(int) { Point temp=*this; x++; y++; z++; return temp; } Point Point::operator --() { --x; --y; --z; return *this; } Point Point::operator --(int) { Point temp=*this; x--; y--; z--; return temp; }
2、定義一個複數類,並通過定義運算子過載實現兩個複數可以判別是否相等(==),並給出主函式應用該類。
#include<iostream> #include<iomanip> using namespace std; class com { private: int real,imag; public: com(int a,int b); void operator ==(com b); }; int main() { com ob1(2.2,3.3),ob2(2.2,3.3); ob1==ob2; return 0; } com::com(int a,int b) { real=a; imag=b; } void com::operator ==(com b) { if((real==b.real)&&(imag==b.imag)) { cout<<"兩複數相等!!"<<endl; } else { cout<<"兩複數不相等!!"<<endl; } }