|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
fdltc (fdltc) |
★☆☆☆☆ |
-
|
普通会员 |
|
2015/4/18 22:22:41 |
标题: |
|
加入我的收藏 |
楼主: |
父类的private成员被严格保护了。即使通过继承,只要位于不同单元,也无法访问。
以前为了访问TList泛型的FItems只需要简单继承即可,现在编译不过,导致我的许多代码都需要重新修改
----------------------------------------------
- |
作者: |
|
2015/4/18 22:38:31 |
1楼: |
你把父类的private改成public即可,而且可以只改某一项,不影响到。private和public听上去很有道理,但实际使用,感觉它们的区别没有想象的重要。
----------------------------------------------
只有偏执狂才能生存!
|
作者: |
fdltc (fdltc) |
★☆☆☆☆ |
-
|
普通会员 |
|
2015/4/18 22:42:28 |
2楼: |
父类是系统类库,不可修改
----------------------------------------------
-
|
作者: |
|
2015/4/18 22:47:17 |
3楼: |
活该。 本来 私有就是私有,你们何必要改。
面向对象 都不遵守了,你们还有没有原则了?
没有原则的人,人品也不咋地。
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
fdltc (fdltc) |
★☆☆☆☆ |
-
|
普通会员 |
|
2015/4/18 23:02:43 |
4楼: |
孩子,父类设计者考虑不完善而已,这你也能找到喷点。
我用delphi的时候,你还在上小学吧
----------------------------------------------
-
|
作者: |
|
2015/4/18 23:07:17 |
5楼: |
他设计不好,你可以不用啊。
再说了,人家 1 楼,叫你改,你还不听。活该。
你就算用了100年 DELPHI,也没有我这个用了 10 年的强。
倚老卖老,现在坏人都变老了。你就是其中之一吧。
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
yxsoft (yxsoft) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2015/4/18 23:15:14 |
6楼: |
难道原来不是这样的?那Private是什么意思
----------------------------------------------
Great!
|
作者: |
zlxym (zlxym) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2015/4/18 23:39:49 |
7楼: |
位于不同单元的private本来就不能访问的吧,只有在位于同一单元中才可以直接访问
----------------------------------------------
-
|
作者: |
fdltc (fdltc) |
★☆☆☆☆ |
-
|
普通会员 |
|
2015/4/19 0:21:53 |
8楼: |
是泛型的类继承,不是普通的类。
从delphi发布泛型开始,一直可以通过继承来访问私有变量。
从2009-XE7都可以编译,XE8不行了。
----------------------------------------------
-
|
作者: |
|
2015/4/19 1:19:54 |
9楼: |
那就继续用XE7吧。
----------------------------------------------
我是菜鸟,己经搞了十多年了,但是我仍然很菜。
|
作者: |
fdltc (fdltc) |
★☆☆☆☆ |
-
|
普通会员 |
|
2015/4/19 4:42:54 |
10楼: |
已经搞定了
----------------------------------------------
-
|
作者: |
|
2015/4/19 10:15:33 |
11楼: |
如果说通过继承可以访问私有成员,而且是不同单元,只能说是原编译器有bug,现在修正了。delphi的的类的封装性其实是太松了。
----------------------------------------------
UniKeeper V10.40 -- 您最贴心的个人数据管理助手
|
作者: |
|
2015/4/19 15:04:31 |
12楼: |
怎么搞定的,应该有开关吧。
----------------------------------------------
-
|
作者: |
|
2015/4/19 15:51:24 |
13楼: |
我也想改知道通过继承可以访问和操作私有成员,而且是不同单元。我觉得是非常需要,因为没有源码,只有dcu情况下,使用helper只能改函数、过程,私有变量是无法弄的,如果能操作到私有域时,那许多事都好办了,期待有个helper功能能改类的域
----------------------------------------------
-
|
作者: |
go_on (go_on) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2015/4/19 16:03:08 |
14楼: |
系统类库应该也可以修改的,复制一份到自己工程,然后修改,自己工程优先
----------------------------------------------
-
|
作者: |
|
2015/4/19 19:14:08 |
15楼: |
Delphi一直都是这种语法,的Private成员和函数在同一个单元可以随意访问,不同单元不能访问. protected的成员和函数在同一个单元可以随意访问,不同单元的话派生类才可以访问.
不是语法变了
----------------------------------------------
武稀松http://www.raysoftware.cn
|
作者: |
|
2015/4/19 19:20:24 |
16楼: |
根据 11 楼,给15楼补充如下。
而是BUG修复了。
好事啊。
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
|
2015/4/19 19:49:32 |
17楼: |
private的成员和函数是可以访问的,用一个变通的语法;
有时我也用到;特别是修改第三方控件的时候;
----------------------------------------------
青云论坛
|
作者: |
|
2015/4/19 21:28:44 |
18楼: |
网上能找到改私有变量的方法,但按偏离地址的方法来弄的
----------------------------------------------
-
|
作者: |
bjzhq ( oce) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2015/4/20 8:41:25 |
19楼: |
RTTI
----------------------------------------------
-
|
作者: |
|
2015/4/20 10:23:07 |
20楼: |
xe8 能不能 让 create 变成私有?
这样可以更完美地 实现单例
----------------------------------------------
kittyapp
|
作者: |
|
2015/4/25 1:49:05 |
21楼: |
外单元想直接访问类的私有变量?这样还封装个屁,还搞什么面向对象?
凡是在外单元访问一个类的私有变量的都是有为面向对象原则的。
----------------------------------------------
-
|
作者: |
|
2015/4/30 14:57:45 |
22楼: |
呵呵,这个应该就是 C++ 友元机制的 Delphi 实现。 来自度娘: 友元不是成员函数,但是它可以访问类中的私有成员。友元的作用在于提高程序的运行效率,但是,它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。不过,类的访问权限确实在某些应用场合显得有些呆板,从而容忍了友元这一特别语法现象。
----------------------------------------------
-
|
作者: |
|
2017/5/25 13:39:00 |
23楼: |
cxb_zdl,你好!看到你之前关于Delphi自动适应屏幕分辨率的博文。不知能否劳烦赐教一下?我将你的uMyClassHelpers代码保存为uMyClassHelpers.pas文件放进工程文件里,在工程添加uMyClassHelpers.pas;然后在需要调用的窗口引用uMyClassHelpers。然后把Tmainform = class(TForm)改为Tmainform = class(TfmForm) 运行时报错:[致命错误] uMyClassHelpers.pas(9): File not found: 'uMySysUtils.dcu'
本人比较菜,请问能否缺少文件还是。。。。。
----------------------------------------------
-
|
|