看板 C_and_CPP 關於我們 聯絡資訊
賺個 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
LinRungChuan:問一下如果我有建構子重載 那在new那邊該怎麼寫 08/16 14:08
LinRungChuan:new person(...)[] 跟 person[](...)都不對 08/16 14:09
LinRungChuan:有解了原來是people[]=new person(...) 08/16 14:42
LinRungChuan:不過person *people = new person[num];跟 08/16 14:49
finding2005:dynamic array只能用default constructor, 除非你想 08/16 14:49
finding2005:overloading operator new?! 08/16 14:49
LinRungChuan:people[num]=new person(...)的意思是不是不同 08/16 14:50
finding2005:原先是動態物件陣列, 物件已經"建立"了喔 08/16 14:53
finding2005:看不太懂原PO問的可否詳貼? 08/16 14:54
finding2005:原PO可把建構子要傳的東西, 改用另外的函式傳 08/16 15:01
finding2005:或是用list or vecotr,一個一個建立物立,指定建構子 08/16 15:02
finding2005:再加到list or vector裏去 08/16 15:02
finding2005:www.josuttis.com/libbook/stl/vector1.cpp.htm 08/16 15:03
finding2005:www.josuttis.com/libbook/stl/list1.cpp.html 08/16 15:04
LinRungChuan:查了一下加到vector裡面去 滿好用的,再問一下如果 08/16 15:12
LinRungChuan:用vector一開始沒宣告reserve(num) 是不是也沒關係 08/16 15:13
LinRungChuan:直接寫 物件[0].....物件[n]是不是記憶體自己會配置 08/16 15:14
finding2005:無妨 但用了之後 vector不用每次都要重新去要記憶体 08/16 15:16
LinRungChuan:ok了,沒想到vector那麼方便,不用寫一堆new~~ 08/16 15:31
LinRungChuan:push_back還可以塞函式@@~... 感謝感謝 08/16 15:33
snowlike:to4f 建立num個person指標位置和各個位置初始化的差別 08/16 22:09
snowlike:不過使用new來的陣列型態應該已經自行執行過初始建構 08/16 22:14