作者noodleT (面T)
看板C_and_CPP
标题[问题] 为什麽有些 class 无法直接宣告
时间Wed Oct 28 18:25:19 2015
在 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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1446027921.A.18E.html
1F:推 bibo9901: Q1: 把ctor设为private并重载operator new即可 10/28 20:02
2F:→ EdisonX: 关键字 : 建构子 (constructor) , 解构子 (destructor) 10/28 23:33
3F:→ EdisonX: Q2 : 一个 new 一定配一个 delete. 10/28 23:34
4F:→ noodleT: 那拥有者owner 扮演什麽角色? 10/28 23:51
5F:推 lovejomi: 可以请一楼详述吗?private 建构子 连new都不能不是? 就 10/29 10:20
6F:→ lovejomi: 算overload 能避开吗? 总觉得是bcb自己搞的 10/29 10:21
7F:→ uranusjr: Overloaded operator 里面可以呼叫 private 成员啊 10/29 12:58
8F:推 lovejomi: 可是一写new这字眼 compiler 直接就该说使用private了 10/30 09:00
9F:→ lovejomi: 还没机会走overload 的不是? 还是有范例呢? 10/30 09:01