自己定義陣列類(練習一下運算子過載)

2021-06-08 18:44:36 字數 1249 閱讀 1841

/*

1.陣列類的實現中有內建的自我意識首先它知道自己的大小

2.陣列類支援陣列之間的賦值以及兩個陣列之間的相等和不相等的比較操作

3.陣列類應該支援對其所含的值進行下列查詢運算元組中最小值是什麼最大值是什

麼某個特殊的值是否在陣列中如果存在它佔的第乙個位置的索引是什麼

4.陣列類支援自排序為了便於討論假定存在一群使用者他們認為陣列支援排序的功

能很重要而另外一些人對此卻不以為然

除了支援陣列操作還必須支援陣列本身的機制包括

5.能夠指定長度以此來建立陣列這個值無需在編譯時刻知道

6.能夠用一組值初始化陣列

7.能夠通過乙個索引來訪問陣列中的單個元素為便於討論假設使用者強烈要求用陣列

下標操作符來實現這項功能

8.能夠截獲並指出錯誤的索引值假設我們認為這很有必要所以沒有詢問使用者的想法

我們認為這是乙個設計良好的陣列所必須實現的

*/#include

#include

using namespace std;

//構建陣列類intarray

class intarray

}// 深拷貝

intarray(const intarray &c)

//用於向陣列中硬性賦值

void intarray::set()

}//『==』的過載 兩個陣列物件相等

bool intarray::operator==(const intarray &c)const

}return true;

}//『!=』兩個陣列物件不等

bool intarray::operator!=(const intarray &c)const

return false;

}//'='賦值符的過載,用於陣列間的賦值

intarray & intarray::operator=(const intarray &c)

return *this;

}//找出函式引數所指位置的數

int intarray::find(int value)const

void main()

{intarray array1(10);//建構函式設定初值,其實也屬於硬性賦值

intarray array2(10);

array1.set();//開始對兩個整形陣列硬性賦值

array2.set();

if(array1==array2)

{cout<<"兩陣列相等"<

記錄一下自己關於遞增運算子過載的錯誤

源 include includeusing namespace std class myint 前置 運算子 myint operator 返回引用是因為內建 a 是一直對乙個資料做遞增操作 後置 運算子 myint operator int 後置遞增返回的是值,如果是引用就是非法操作 int代表...

記錄一下ES6擴充套件運算子(三點運算子) 的用法

運算子用於運算元組,有兩種層面 1.第乙個叫做 展開運算子 spread operator 作用是和字面意思一樣,就是把東西展開。可以用在array和object上都行。比如 let a 1,2,3 let b 0,a,4 0,1,2,3,4 let obj let obj2 let obj3 2....

C 運算子過載四(自定義陣列類)

自定義陣列類 includeusing namespace std 分析 能獲取陣列長度,新增元素,刪除元素,修改元素 要求過載,運算子 class myarray myarray const myarray obj intlength void setdata int index,int valu...