社区
VCL组件使用和开发
帖子详情
C++Builder中为什么对象大多数都是声明为指针??
qq544164
2009-07-29 04:02:03
C++Builder6.0中IDE生成的。如何Tbuttion,TextBox等。都是声明为指针呢。
如果我自己写了一个User类。想用它。是不是也最好声明指针类型?好处是什么呢?
...全文
391
17
打赏
收藏
C++Builder中为什么对象大多数都是声明为指针??
C++Builder6.0中IDE生成的。如何Tbuttion,TextBox等。都是声明为指针呢。 如果我自己写了一个User类。想用它。是不是也最好声明指针类型?好处是什么呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sczyq
2009-08-25
打赏
举报
回复
建立在堆上的成员, 用 "->" 访问, 如: FUser->Id
建立在栈上的成员, 用 "." 访问, 如: FUser.Id
___NULL
2009-08-25
打赏
举报
回复
指针是一把强大的双刃剑,不过我喜欢
draculamx
2009-08-21
打赏
举报
回复
还有一点,VCL中有很多函数的参数都是复杂的类或者结构体,这种情况下,用指针可以最大化的提高性能
daily66
2009-08-20
打赏
举报
回复
多态,另外,速度也快,
microtie
2009-08-11
打赏
举报
回复
学习了,也为此困惑过
我不懂电脑
2009-08-10
打赏
举报
回复
声明称指针类型的根本原因在于对多态、延迟绑定的支持,举例说
一个基类指针指向派生类,如果有虚函数使用了多态的话,基类指针调用的是派生类的方法,
而不用指针的话调用的是基类的方法。
xjq2003
2009-08-10
打赏
举报
回复
[Quote=引用楼主 qq544164 的回复:]
C++Builder6.0中IDE生成的。如何Tbuttion,TextBox等。都是声明为指针呢。
如果我自己写了一个User类。想用它。是不是也最好声明指针类型?好处是什么呢?
[/Quote]
一定要声明称指针类型,不然你调用Tbuttion,TextBox的函数都不行
72193
2009-08-09
打赏
举报
回复
大家理解一下java , c# 的话就理解 bcb 为何要这样了.
说到底是内存问题.(动态的内存管理)
主要是为了得到高级特性,一个弹性的内存需求是不可以直接在堆栈中创建的,
内部还有很多实现上的细节,例如:
动态数组,智能指针,动态内存回收,等等.
银点
2009-08-03
打赏
举报
回复
[Quote=引用 3 楼 ccrun 的回复:]
你自己写的User类,如果继承自TObject,由于VCL的特性,对象只能建立在堆上,不能建立在栈上。
也就是说如果这个User类继承自TObject,那么只能用new的方式创建实例。
对于不是继承自TObject的自定义类,可以建立在堆上(定义一个指针,用new的方式创建对象),也可以建立在栈上(TUser u;这样的方式创建),只不过用new方式创建的对象,需要注意用delete释放。
[/Quote]
正解。前一段时间刚看到的。妖哥,你真妖!
laowang2
2009-07-29
打赏
举报
回复
vcl组件必须要这样做。
lhy
2009-07-29
打赏
举报
回复
C++当然要用指针了。
TripH0101
2009-07-29
打赏
举报
回复
MARK
ccrun.com
2009-07-29
打赏
举报
回复
你自己写的User类,如果继承自TObject,由于VCL的特性,对象只能建立在堆上,不能建立在栈上。
也就是说如果这个User类继承自TObject,那么只能用new的方式创建实例。
对于不是继承自TObject的自定义类,可以建立在堆上(定义一个指针,用new的方式创建对象),也可以建立在栈上(TUser u;这样的方式创建),只不过用new方式创建的对象,需要注意用delete释放。
肆水東澤
2009-07-29
打赏
举报
回复
主要是对内存的管理。
haiandj
2009-07-29
打赏
举报
回复
可以动态创建和删除控件;
可以动态申请和释放内存;
可以把声明和定义分开(头文件和源文件);
米的向日葵
2009-07-29
打赏
举报
回复
在VCL中对象存储实现机制和C++有点不同,对象都是存储在对上的,用堆来存储对象有其优点,他让用户自己显示地创建和销毁,什么时候创建什么销毁了,一清二楚,可读性非常好,传递时也不需要拷贝
C++Builder 资料库 (转载)
C++Builder 资料库 2005-03-03 15:14 13115人阅读 评论(3) 收藏 举报 1.怎样在C++Builder
中
创建使用DLL 2.用C++Bulider在WIN.INI
中
保存信息 3.如何在C++Builder
中
检测硬件 4.
C++Builder
如何...
C++Builder
智能
指针
#include <memory> void __fastcall TForm1::Button1Click(TObject * Sender) { std::auto_ptr<TButton>foo(new TButton(Form1)); foo->Caption = "this Be a Test";... MessageBox(NULL,foo->...
C++ builder基础
C++ builder 简介 C++ Builder是由Borland公司...Inprise(原Borland)公司推出的Turbo C、Turbo C++ 、Borland C++ 以及Borland C++ Builder,无不是 C/C++ 编程者所钟爱的编程工具,而且每一个都称得上经典之作,Delp
C++Builder
对C++的扩展
C++Builder
对C++的扩展
C++Builder
完全兼容标准C++,标准C++是一个大而广泛的类和函数的集合,这个标准由国际标准化组织(ISO)与美国国家标准委员会(ANSI)共同指定。此标准具有广泛的权威性,一般的开发工具都...
C++使用指向
对象
的
指针
一、使用new初始化
对象
通常,如果Class_name是类,value的类型为Type_name,则下面的语句: Class_name *pclass = new Class_name(value); 将调用如下的构造函数: Class_name(Type_name); 这里会有一些琐碎的...
VCL组件使用和开发
604
社区成员
13,460
社区内容
发帖
与我相关
我的任务
VCL组件使用和开发
C++ Builder VCL组件使用和开发
复制链接
扫一扫
分享
社区描述
C++ Builder VCL组件使用和开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章