C 學習 物件陣列

2021-08-06 06:50:51 字數 1110 閱讀 5690

先上個**

#include#includeusing namespace std;

class student

student(const student&stu) :m_strname("alice"), m_intnumber(20301)

string printfname()

int printfnum()

void setname()

void setname2(string a)

~student()

private:

string m_strname;

int m_intnumber;

};void copy(student a)

int main()

我覺得用棧來初始化物件陣列是沒有問題的,但是用堆就會有點問題。

我們經常是 student*stu2=new student[3]這樣子,這個是沒有問題的。

但是之後我就開始想使用指標的方法來呼叫每乙個物件的成員函式

例如stu2[0]->printfname()這樣子,但是我後來發現乙個問題!

stu2[0]根本就,不是,乙個指標啊!!!!!!

在這裡,指標應該是stu2!

所以我們可以用stu2->printfname()這樣子呼叫第乙個物件的成員函式。

然後我們可以使用類似(stu2+1)->printfname()這樣子呼叫第二個物件的成員函式

但是這裡有另外乙個問題

那就是,如果你使用了stu2++這一種方法。。。。。。

那麼你stu2->printfname()這樣子,就是訪問第二個物件的成員函式了。

另外乙個要注意的是

自增以後stu2++以後,stu2[0]現在這樣子你訪問的是第二個物件!而不是第乙個物件了!

這是需要注意的!

我的**好像三個物件的內容都一樣的-3-。。。

另外囉嗦說一下。。。。大家如果想用堆的方法來建立乙個東西,anyway,什麼東西,都要遵循

判斷申請是否成功

用完了之後delete

然後再把申請的指標指到null

這是乙個好習慣啊~~~!!~!~!

C 物件陣列

delete p 加上能銷毀所有的元素,如果不加只銷毀第乙個元素 其實就是呼叫了p中的析構函式 coornidate.h includeusing namespace std class coornidate coornidate.cpp include include coordinate.h u...

C 物件陣列

c 中的物件陣列為我們提供了同時例項化多個相同物件的功能,避免我們多次進行例項化相同的物件。例如表示多維圖形時的座標等。宣告時的方法與例項化單個物件類似。下面以乙個二維三角形為例 class coordinate 這裡就不做封裝了 棧區 void main 堆區 int main 在堆區中,一定要以...

C 物件陣列

物件陣列 物件陣列 每乙個陣列元素都是物件的陣列,也就是說,若乙個類有若干個物件,我們把這 一系列的物件用乙個陣列來存放。對應陣列元素是物件,不僅具有的資料成員,而且還有函式 成員。定義乙個一維陣列的格式如 類名 陣列名 下標表示式 使用物件陣列時只能訪問單個陣列元素,其一般格式如 陣列名 下標 成...