C 物件與陣列

2021-05-22 00:11:20 字數 2585 閱讀 2715

物件陣列是指數組元素為物件的陣列。該陣列中若干個元素必須是同乙個類的若干個物件。物件陣列的定義、賦值和引用與普通陣列一樣,只是陣列的元素與普通陣列不同,它是同類的若干個物件。

1. 物件陣列的定義

物件陣列定義格式如下:

《類名》《陣列名》[《大小》]...

其中,《類名》指出該陣列元素是屬於該類的物件,方括號內的《大小》給出某一維的元素個數。一維物件陣列只有乙個方括號,二維物件陣列要有兩個方括號,等等,例如:

date dates[7];

表明dates是一維物件陣列名,該陣列有7個元素,每個元素都是類date的物件。

2. 物件陣列的賦值

物件陣列可以被賦初值,也可以被賦值。例如:

class date;

下面是定義物件陣列並賦初值和賦值:

date dates[4]=

或者dates[0] = date(7, 7, 2001);

dates[1] = date(7, 8, 2001);

dates[2] = date(7, 9, 2001);

dates[3] = date(7, 10, 2001);

指向陣列的指標和指標陣列

指向陣列的指標和指標陣列是兩個完全不同的概念,現放在一起介紹是中為兩者在定義格式相似,千萬不要把它們搞混了。

1. 指向陣列的指標

指向一般陣列的指標定義格式如下:

《型別說明符》(*《指標名》)[《大小》]...

其中,用來說明指標的 * 要與《指標名》括在一起。後面用乙個方括號表示該指標指向一維陣列,後面用二個方括號表示該指標指向二維陣列。《型別說明符》用來說明指標所指向的陣列的元素的型別。例如:

int (*p)[3];

p是乙個指向一維陣列的指標,該陣列有3個int型元素。

而指向物件陣列的指標,則把《型別說明符》改為《類名》即可:

《類名》(*《指標名》)[《大小》]...

指向陣列的指標的主要應用思想是:將陣列的首位址(二維陣列的某個行位址)賦給指標,然後通過迴圈(for)改變指標指向的位址,從而動態的訪問陣列中各個元素。

2. 指標陣列

所謂指標陣列指的是陣列元素為指標的那類陣列。乙個陣列的元素可以是指向同一型別的一般指標,也可以是指向同一類型別的物件。

一般指標陣列的定義格式如下:

《型別名》*《陣列名》[《大小》]...

其中,*加在《陣列名》前面表示該陣列為指標陣列。[《大小》]表示某一維的大小,即該維的元素個數,…表示可以是多維指標陣列,每乙個[《大小》]表示一維。例如:

int * pa[3];

char * pc[2][5];

在c++程式設計中,經常使用char型的指標陣列用來存放若干個字串。下面是乙個一維指標陣列的例子。

#include

#include

const int n = 5;

void main()

cout< for (i=0; i cout<<"string #"< }

物件指標陣列的定義如下:

物件指標陣列是指該陣列的元素是指向物件的指標,它要求所有陣列元素都是指向同乙個類型別的物件的指標。格式如下:

《類名》*《陣列名》[《大小》]...

它與前面講過的一般的指標陣列所不同的地方僅在於該陣列一定是指向物件的指標。即指向物件的指標用來作該陣列的元素。下面通過乙個例子看一下物件指標陣列的用法。

#include

class a

void print();

private:

int a, b;

};void a::print()

void main()

;for (int i=0; i<3; i++)

b[i]->print();}

帶引數的main()引數

前面講過的main()函式都是不帶引數的。在實際程式設計中,有時需要main()帶引數。通過main()函式的引數給程式增加一些處理資訊。一般地說,當使用c++編寫的源程式經過編譯連線生成的可執行檔案在執行時,需要還命令列引數,由該源程式的主函式main()就需要帶引數。使用所還有的引數來存放命令列中的引數,以便在程式中對命令列引數進行處理。

帶有引數的main()函式頭格式如下:

void main(int argc, char * argv)

其中,第乙個引數argc是int型的,它用來存放命令列引數的個數,實際上argc所存放的數值比命令列引數的個數多1,即將命令字(可執行檔名)也計算在內。第二個引數argv是乙個一維的一級指標陣列,它是用來存放命令列中各個引數和命令字的字串的,並且規定:

argv[0]存放命令字

argv[1]存放命令列中第乙個引數

argv[2]存放命令列中第二個引數

…這裡,argc的值和argv各元素的值都是系統自動組賦值的。

在這裡講述帶引數的main()函式實際上是對指標陣列應用的乙個具體例項。

#include

void main(int argc, char *argv)}

上述編譯連線後的exe檔案,可在dos命令列下除錯。

關於命令列引數的使用,其基本方法是直接引用指標陣列argv中某個元素所存放的字串,可用下標方式,也可用指標方式。

C 物件陣列與this指標

標籤 空格分隔 c 版本 2該文章僅被發布於作業部落 原 csdn 由於在c 中我們可以直接操作堆和棧,所以在宣告時我們也需要選擇陣列的建立方式。有一種最顯而易見的方法去判斷變數的儲存狀態,就是看物件建立時有沒有用new關鍵字。1,棧陣列棧物件 顧名思義就是陣列和物件都在當前棧中分配,帶來的好處就是...

C 之物件陣列與物件指標

是指每乙個陣列元素都是物件的陣列,也就是說,若乙個類有若干個物件,我們把一系列的物件用乙個陣列來存放。物件陣列的元素是物件,不僅具有資料成員,而且還有函式成員。格式 類名 陣列名 下標表示式 在建立陣列時,同樣要呼叫建構函式。有幾個陣列元素就要呼叫幾次建構函式。1 當只需要乙個引數時,在定義物件陣列...

陣列與物件

建立陣列 var arr new array 另一種方式是var arr 稱之為字面量,不是很懂就將就這樣寫著 建立物件 var obj new object 與之對應的是var obj 利用date物件來測試一段 的執行時間 var date new date 建立date物件 varstart ...