[問題] 如何 new class

看板C_and_CPP (C/C++)作者 (永恆的真實)時間14年前 (2012/05/07 22:20), 編輯推噓0(0011)
留言11則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) g++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 有三個class, 分別是pin, net, gate. 在net裡頭,有個member是pin **pinlist 因為不確定pin會有幾個,所以以這種方式, 想要每次有新的pin(net裡頭的pin),就new一次 可是不知道該如何new pin **pinlist。 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) class pin { public: pin(); ~pin(); private: string con_net; int use_net; }; class net { public: net(); ~net(); private: pin **pinlist; int pin_num; }; class gate { public: gate(); ~gate(); private: pin pinlist[MAX_PINS_ON_GATE]; }; 補充說明(Supplement): 我是先假設有固定的gate和net,然後宣告net: net net_num[num]; //num是net總共的個數。 假設i是從0~num-1, 請問我該如何new net_num[i]裡頭的pin **pinlist呢? 謝謝... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.28.56

05/07 22:31, , 1F
如果你用 STL 的話,宣告成 std::list<pin *> pinlist;
05/07 22:31, 1F

05/07 22:32, , 2F
pinlist.push_back(new pin());
05/07 22:32, 2F

05/07 22:32, , 3F
前面記得 #include <list>
05/07 22:32, 3F

05/07 22:33, , 4F
謝謝你!!那請問有沒有不用STL的方式呢?
05/07 22:33, 4F

05/07 22:35, , 5F
如果要刪除最後一個 delete pinlist.back();
05/07 22:35, 5F

05/07 22:35, , 6F
pinlist.pop_back();
05/07 22:35, 6F

05/07 22:37, , 7F
當然有不用 STL 的方式
05/07 22:37, 7F

05/07 22:42, , 8F
依照你的需求應該是用 linked-list 來做,除非你需要直接
05/07 22:42, 8F

05/07 22:42, , 9F
index 到指定的 pin
05/07 22:42, 9F

05/07 23:56, , 10F
恩,我是打算用linked-list做沒錯...不過改來改去還是錯
05/07 23:56, 10F

05/08 00:58, , 11F
05/08 00:58, 11F
文章代碼(AID): #1Ffzem89 (C_and_CPP)
文章代碼(AID): #1Ffzem89 (C_and_CPP)