有一个基类TA声明在Uni1,有一个私有字段s。
有一个派生类TB声明在Uni2。那么我问,TB中有没有s字段?
答案是有,就是说Private字段也能被继承?Java中应该是不能的。
那s能不能访问?答案是有时能访问有时不能访问,如果你把一个TB类型的变量声明在Unit1中,就能访问,声明在Uni2中就不能访问。
Delphi将它的对象模型和文件组织结构纠缠在了一起,这我觉得是很不明智的。
有一个派生类TB声明在Uni2。那么我问,TB中有没有s字段?
答案是有,就是说Private字段也能被继承?Java中应该是不能的。
那s能不能访问?答案是有时能访问有时不能访问,如果你把一个TB类型的变量声明在Unit1中,就能访问,声明在Uni2中就不能访问。
Delphi将它的对象模型和文件组织结构纠缠在了一起,这我觉得是很不明智的。
解决方案 »
- 下面的字符串怎样保存在数据库中才不会丢失数据
- 在控制台下怎样定义一个类
- 怎么用toolbar实现浮动工具条
- 我要Express QuantumGrid(Tcx系列的)FOR D5,找了全中国的网站都找不到,谁帮我啊!
- 求助!简单技巧性问题
- help,help,sql!!!
- 关于用QuickRep1打印走纸的问题
- 我想把excel导入oracle,怎么弄呢!
- 突然想到的问题:无模式窗体和MDI窗体之间有哪些异同点?
- 如何把image1中的,图片,用ViewAsText 的一些Data中的图元信息,还原成BMP图形,一般的好象没有相关的语法可以利用
- 用delphi7对excel文件表进行处理的问题~~
- TClientDataSet进行ApplyUpdates后马上又CancelUpdates为什么界面上还显示旧的数据呢
举个例子:
我不希望两个类是友员类,那就只能把这两个类声明在不同的pas中,但是如果A类中包含了一个B类类型成员,B类中又有一个A类类型成员,这就要求Unit1 uses Unit2并且Unit2 uses Unit1,这是没有办法实现的,在单元的接口节的uses不允许循环引用。
但同一个单元里面互为友元类,这个设计确实不好。
同一单元下的都是友元,这是 delphi约定
c++中要显式指明友元,有经验的人都会发现,这个友元不好指明,当在写基类时,没想过有友元,完全有可能发生要申明一个友元,但这个类是之前写好的
delphi这个约定有好处