最近学C++,联想到DELPHI的两个问题(100分)

  • 主题发起人 主题发起人 tt_mok
  • 开始时间 开始时间
T

tt_mok

Unregistered / Unconfirmed
GUEST, unregistred user!
1,delphi中有类似C++中的类的静态变量吗?既无论有多少个对象,
但此变量在内存中只有一份,我觉得没有,若要实现,该怎么样模拟呢?
2,今天我看EFFECTIVE C++一书,说在类中的PUBLIC部分,不要开放
任何的DATAMEMBER,即所有的成员都用函数来读取,我联想到DELPHI中
是否也有必要这样做呢?请大家讨论 :)
 
1.有
2。有
 
1 不太清楚,只是我不知这种类有什么用,内存中只有一份,意味着
多个实例的所有属性均相同,那要那么多实例作什么呢?

2 我认为有必要,因为一个DATAMEMBER如果置于PUBLIC中,在程序中就可以直接
修改它的值这样这个类就不能对此改变有任何反应。不过我也不认为必需要用函数
读取是对的,如果你确信这个类不需要在读取时这个成员时做任何其它的事,当然
可以设置一个属性来完成对它的读取。
 
1、可用单元变量来模拟
2、我觉得有必要这么做,这样你对你的变量有更大的控制权。
 
to蒋劲刚,
并不是整个类在内存中只有一份,而只是此类中的一个DATA MEMBER
在内存中只有一份
 
1.这种静态变量不利于对象的维护呀。。共用储存区不好。还是用全局的吧!
2.这是现代面向对象追求的目标,便于对象的自我维护。不过要看你做什么样的程序了,做大型程序最好还是保证对象的完整性
 
1.没有静态成员变量,只有静态成员函数,叫类方法(函数/过程),在你的方法名前加class关键字即可。
2.好习惯!其实本来Delphi就能更方便地支持这一点,定义一个property,只读。
 
1。也能实现,用指针就行,只建立一个实体,类中用指针指向就行了,但是似乎用处不大
 
2: 你看看VCL的原码里面几乎没有哪个类会在public部分声明一个DATAMEMBER(Field)
 
据说有吧。不是很熟呀![:D]
 
可不可以这样来实现,定义一个私有字段,一个类方法,类方法用来访问该字段,在Create
中初始化该字段,不要用参数,用代码写死,这样,无论创建多少个对象,虽然每个对象都有
该字段的一个值,但所有对象的该字段的值都是一样的,于是无论该类的那个对象类方法来
访问该字段,得到的结果都是一样的。但最简单的还是设一个只读属性。
 
可以使用内存共享机制
 
1。在单元implementation中定义的变量就是类变量,相当于c中的静态变量,在单元内
它共享内存地址,在单元外通过类方法读取其值。
2。对于大程序有必要,但对初学者不方便。
 
接受答案了.
 
后退
顶部