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