7 8 函式與array物件(基礎篇引入)

2021-10-06 22:29:52 字數 1904 閱讀 9092

假設您要使用乙個array物件來儲存一年四個季度的開支:

std::arrayexpenses;

前面說過,要使用array類,需要包含標頭檔案array,而名稱array位於命名空間std中。

如果函式來顯示expenses的內容,可按值傳遞expenses:

show(expenses);

但如果函式要修改物件expenses,則需將該物件的位址傳遞給函式(或傳遞引用)

fill(&expenses);

如何宣告這兩個函式呢?expenses的型別為array,因此必須在函式原型中指定這種型別:

void

show

(std::array<

double,4

>da)

;//da an object

void fill (std::array<

double,4

>

*pa)

;//pa a pointer to an object

請注意,模板array並非只能儲存基本資料型別,它還可儲存類物件。程式清單7.15列出了該程式的完整**。

函式fill()和show()都有缺點。函式show()存在的問題是,expenses儲存了四個double值,而建立乙個新物件並將expenses的值複製到其中的效率太低。如果修改該程式時期處理每月甚至每日的開支,這種問題將更嚴重。

函式fill()使用指標來直接處理原始物件,這避免了效率低下的問題,但**是看起來更複雜:

fill(&expenses); //don』t forget the &

…cin>> (pa) [i];

在最後一條語句中,pa是乙個指向array物件的指標,因此pa為這種物件,而(*pa)[i]是該物件的乙個元素。由於運算子優先順序的影響,其中的括號必不可少。

後面會改進該**。

Array 類與物件

以上是陣列類array的資料成員,請為它補充以下方法 1 預設建構函式,建立乙個預設大小為10的陣列 2 有引數建構函式,引數為所要建立的陣列的大小 3 拷貝建構函式 4 析構函式 5 input方法,為陣列元素賦值 6 output方法,輸出陣列元素 7 sort方法,給陣列排序 8 insert...

js基礎之array物件

array物件有很多方法 它可以攤平一層陣列 如果它的引數是乙個原始型別,那麼它直接依次加到陣列末尾。如果是引數是乙個陣列,陣列裡面的元素是原始型別,將陣列裡面的元素依次加到陣列末尾。如果引數是乙個陣列,陣列裡面的元素是引用型別,直接將引用型別的元素加到陣列末尾。它是將陣列裡面每乙個元素轉換成字串,...

Java類與物件 基礎篇

目錄 一 instanceof 二 向下轉型 三 向上轉型 四 object類 4.1 常用方法 4.2 預設 五 抽象類 六 介面 七 方法過載 八 多型 九 繼承 繫結。當equals方法被重寫時,通常有必要重寫 hashcode 方法,以維護 hashcode 方法的常規協定,該協定宣告相等物...