我試圖使用operator+
函數將兩個對象一起添加到包含int
數組。我得到不可靠的答案,我不知道爲什麼。爲什麼我的組合數組中的某些成員獲得奇怪的int
值?當在對象上重載求和運算符時,無法可靠地將兩個int數組添加到一起?
下面是函數:
IntArray operator+(const IntArray& in1, const IntArray& in2){
IntArray temp;
for (int i = in1.low(); i <= in2.high(); i++){
temp.iArray[i] = in1.iArray[i] + in2.iArray[i];
}
return temp;
}
,這裏是輸出我得到:
Sum of two arrays assigned to third array: IntArray a(1, 5);
IntArray b(4, 8);
IntArray c = a + b;
a[1] = 10 a[2] = 20 a[3] = 30 a[4] = 40 a[5] = 50`
b[4] = 40 b[5] = 50 b[6] = 60 b[7] = 70 b[8] = 80`
Press any key to continue.
c[0] = 0 c[1] = 32777 c[2] = 100 c[3] = 38 c[4] = 80 c[5] = 100 c[6] = 60 c[7] = 74 c[8] = 80 c[9] = 32767
Press any key to continue.
我缺少的東西?
編輯:添加代碼IntArray
class IntArray{
private:
int *arrPtr;
int iArray[SIZE];
int arrLower, arrUpper;
int size;
string name;
public:
IntArray();
IntArray(int range);
IntArray(int lower, int upper);
IntArray(const IntArray& input);
int high() const;
int low() const;
int compare(int in1, int in2) const;
int operator==(const IntArray& in);
int operator!=(const IntArray& in);
void setName(string input);
IntArray& operator=(const IntArray& in);
int& operator[] (int size) { return iArray[size]; }
IntArray& operator+=(const IntArray&);
friend IntArray operator+(const IntArray& in1, const IntArray& in2);
friend ostream& operator<<(ostream& os, const IntArray& i);
};
和構造:
IntArray::IntArray(int lower, int upper){
arrLower = lower;
arrUpper = upper;
// Creates array size
size = arrUpper - arrLower + 1;
operator[](size);
}
這裏是整個程序的鏈接:
https://gist.github.com/anonymous/fd4b8a5e1d1ac4d0982a
請提供'IntArray'的代碼。 – Pradhan
@Pradhan新增。我很抱歉。 – Ryan
@Ryan:這還不夠。發佈成員函數定義。特別是構造函數。 – AnT