看板 C_and_CPP 關於我們 聯絡資訊
以下要把兩陣列X,Y做這樣的運算 Z=(X+Y)*2 然後在main()裡面的 '=' 運算子多載無法作用 我是用DEV-C++ 可以請教一下問題在哪嗎? 感謝! #include <cstdlib> #include <iostream> using namespace std; class Array { private: int size; int *data; public: Array(int s) { size=(s>0?s:10); data=new int[size]; } void setArray(int a[]) { for(int i=0;i<size;i++) data[i]=a[i]; } Array & operator=(Array &right) { for(int i=0;i<size;i++) data[i]=right.data[i]; return *this; } Array operator+(Array &op2) { int *a= new int[size]; for(int i=0;i<size;i++) a[i]=data[i]+op2.data[i]; Array result(size); result.setArray(a); return result; } Array operator*(int k) { int *a=new int[size];; for(int i=0;i<size;i++) a[i]=data[i]*k; Array result(size); result.setArray(a); return result; } void printArray() { for(int i=0;i<size;i++) cout << data[i] << " "; cout << endl; } }; int main(int argc, char *argv[]) { Array X(10); Array Y(10); Array Z(10); int i, ary[10]; cout << "Input array x:"; for(int i=0;i<10;i++) cin >> ary[i]; X.setArray(ary); cout << "Input array y:"; for(int i=0;i<10;i++) cin >> ary[i]; Y.setArray(ary); Z=(X+Y)*2; cout << "Array z:"; Z.printArray(); system("PAUSE"); return EXIT_SUCCESS; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.193.244 fjf1980:轉錄至看板 Examination 03/30 23:02
holymars:我看到了好恐怖的memeory leak new完delete掉是好習慣 03/30 23:42