Re: [問題] 動態產生物件

看板C_and_CPP (C/C++)作者 (finding)時間16年前 (2009/08/16 13:43), 編輯推噓7(7015)
留言22則, 3人參與, 最新討論串2/3 (看更多)
賺個 p 幣...@@" using namespace std; class person { public: person() { age = 0; } int age; }; int _tmain(int argc, _TCHAR* argv[]) { int num = 0; cin >> num; cout << "num = " << num << endl; person *people = new person[num]; for(int j=0;j < num;j++) { people[j].age = j; } for(int k=0;k < num;k++) { cout << "age: " << people[k].age << endl;; } delete[] people; system("pause"); return 0; } ※ 引述《LinRungChuan (吉他手)》之銘言: : class person : { : person(...); : ~person(...); : void f1(....); : void f2(....); : } : void main() : { : person *people1; : people1 = new person(...); : person *people2; : people2 = new person(...); : person *people3; : people3 = new person(...); : : : : : : : } : 如標題,如果我要new的people數量要由cin決定,那我無法在程式裡面 : 先new好我要的個數,有類似指標動態配置array的方式 可以配置物件的嗎 : 我把people當成變數 寫成 person *people; people = new person(...); : 但這樣要配置大小的[]我就不知道怎麼寫, : 而且*(people+0)->f1(....); 好像沒這種寫法 ,編譯過不了 : 我沒用過vector,找了一下它的例子,好像可以儲存物件,不過書上例子看不太董 : 不確定是不是存了people 就可以用 people.f1(....) : 還是只能使用vector裡面的涵式,例如 people.push_back() : 爬文沒有找到例子,希望有人可以教一下怎麼達到我要的功能 : 感激不盡~~~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.112.138.103

08/16 14:08, , 1F
問一下如果我有建構子重載 那在new那邊該怎麼寫
08/16 14:08, 1F

08/16 14:09, , 2F
new person(...)[] 跟 person[](...)都不對
08/16 14:09, 2F

08/16 14:42, , 3F
有解了原來是people[]=new person(...)
08/16 14:42, 3F

08/16 14:49, , 4F
不過person *people = new person[num];跟
08/16 14:49, 4F

08/16 14:49, , 5F
dynamic array只能用default constructor, 除非你想
08/16 14:49, 5F

08/16 14:49, , 6F
overloading operator new?!
08/16 14:49, 6F

08/16 14:50, , 7F
people[num]=new person(...)的意思是不是不同
08/16 14:50, 7F

08/16 14:53, , 8F
原先是動態物件陣列, 物件已經"建立"了喔
08/16 14:53, 8F

08/16 14:54, , 9F
看不太懂原PO問的可否詳貼?
08/16 14:54, 9F

08/16 15:01, , 10F
原PO可把建構子要傳的東西, 改用另外的函式傳
08/16 15:01, 10F

08/16 15:02, , 11F
或是用list or vecotr,一個一個建立物立,指定建構子
08/16 15:02, 11F

08/16 15:02, , 12F
再加到list or vector裏去
08/16 15:02, 12F

08/16 15:03, , 13F
www.josuttis.com/libbook/stl/vector1.cpp.htm
08/16 15:03, 13F

08/16 15:04, , 14F
www.josuttis.com/libbook/stl/list1.cpp.html
08/16 15:04, 14F

08/16 15:12, , 15F
查了一下加到vector裡面去 滿好用的,再問一下如果
08/16 15:12, 15F

08/16 15:13, , 16F
用vector一開始沒宣告reserve(num) 是不是也沒關係
08/16 15:13, 16F

08/16 15:14, , 17F
直接寫 物件[0].....物件[n]是不是記憶體自己會配置
08/16 15:14, 17F

08/16 15:16, , 18F
無妨 但用了之後 vector不用每次都要重新去要記憶体
08/16 15:16, 18F

08/16 15:31, , 19F
ok了,沒想到vector那麼方便,不用寫一堆new~~
08/16 15:31, 19F

08/16 15:33, , 20F
push_back還可以塞函式@@~... 感謝感謝
08/16 15:33, 20F

08/16 22:09, , 21F
to4f 建立num個person指標位置和各個位置初始化的差別
08/16 22:09, 21F

08/16 22:14, , 22F
不過使用new來的陣列型態應該已經自行執行過初始建構
08/16 22:14, 22F
文章代碼(AID): #1AXvo6Oe (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
文章代碼(AID): #1AXvo6Oe (C_and_CPP)