[問題] 一個運算子多載的問題
看板C_and_CPP (C/C++)作者fjf1980 (Yes We Can!)時間16年前 (2010/03/30 22:43)推噓1(1推 0噓 0→)留言1則, 1人參與討論串1/2 (看更多)
以下要把兩陣列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
推
03/30 23:42, , 1F
03/30 23:42, 1F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
1
1
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章