看板 C_and_CPP 關於我們 聯絡資訊
在 BCB 裡面,使用者無法直接宣告: TButton button; // ERROR E2459 VCL style classes must // be constructed using operator new 只能宣告成: TButton *button; button = new TButton(this);// 賦予 Owner Q1.為什麼有些 class 無法直接宣告? 這種 class 是不是有特殊名稱?好處? Q2.設定 Owner 後,是不是就不需要 delete 來和 new 配對? 當我 this->Close() 時自然就會消滅 button 了嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.13.91.15 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1446027921.A.18E.html
bibo9901: Q1: 把ctor設為private並重載operator new即可 10/28 20:02
EdisonX: 關鍵字 : 建構子 (constructor) , 解構子 (destructor) 10/28 23:33
EdisonX: Q2 : 一個 new 一定配一個 delete. 10/28 23:34
noodleT: 那擁有者owner 扮演什麼角色? 10/28 23:51
lovejomi: 可以請一樓詳述嗎?private 建構子 連new都不能不是? 就 10/29 10:20
lovejomi: 算overload 能避開嗎? 總覺得是bcb自己搞的 10/29 10:21
uranusjr: Overloaded operator 裡面可以呼叫 private 成員啊 10/29 12:58
lovejomi: 可是一寫new這字眼 compiler 直接就該說使用private了 10/30 09:00
lovejomi: 還沒機會走overload 的不是? 還是有範例呢? 10/30 09:01