#include <iostream.h>#include "stdlib.h"class CComplex{public:CComplex(double r = 0, double i = 0){? real = r;? imag = i;}int operator int(){? return (int)real;}void Display(void){? cout << "(" << real << "," << imag << ")" << endl;}protected:double real;double imag;};class CVector{public:CVector(CComplex &obj1, CComplex &obj2, CComplex &obj3, CComplex &obj4){? objArray[0] = obj1;? objArray[1] = obj2;? objArray[2] = obj3;? objArray[3] = obj4;}friend CComplex &operator[](CVector obj, int n);private:CComplex objArray[4];};CComplex &operator[](CVector obj, int n){if(n<0 || n>3){? cout<<"Out of range!"<<endl;? exit(0);}return obj.objArray[n];}void main(){CComplex c1(1.1, 1.1);CComplex c2(2.2, 2.2);CComplex c3(3.3, 3.3);CComplex c4(4.4, 4.4);CVector v(c1,c2,c3,c4);v[0].Display();v[1].Display();v[2].Display();v[3].Display();v[0] = 5.5; ----------------------------------------------------------①v[1] = CComplex(6.6); -------------------------------------------②v[2] = int(CComplex(7.7)); --------------------------------------③v[3] = int(CComplex(8.8,9.9)); ----------------------------------④v[0].Display();v[1].Display();v[2].Display();v[3].Display();}
1 回答
已采納

onemoo
TA貢獻883條經驗 獲得超454個贊
CComplex 中的轉型函數?operator int() 前面不用寫返回類型。
重載下標操作符?operator[] 必須是成員函數。 當然其參數只需要一個int就可以了。
main函數的返回類型是int,不要寫成void。
- 1 回答
- 0 關注
- 2242 瀏覽
添加回答
舉報
0/150
提交
取消