问一个我很难理解的问题(66分)

  • 主题发起人 主题发起人 xnew
  • 开始时间 开始时间
X

xnew

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:对于

TFormCapPara = class(TForm)
Button1: TButton;
dxDBInspector2: TdxDBInspector;
procedure Button1Click(Sender: TObject);
procedure XXX;
private
{ Private declarations }
public
{ Public declarations }
procedure YYY;
end;
中private上面的部分算作TFormCapPara的什么呢?其中,那里面的
过程XXX和public中的过程YYY的调用有什么不同呢?
 
private上面的部分应该是published部分的,可见性是最高的,
比public部分还要高,是设计时也可见的,
过程XXX和public中的过程YYY的调用没什么不同,只是函数的可见性不同而已
 
private上面的部分是对象内部域定义部分,不可见,不可重载,是最最私有的部分。
在同一单元(unit)里可以被访问。
在同一单元里 过程XXX和过程YYY 调用相同。
 
private以上叫寄存
 
我觉得bunder的回答难以理解和接受。
因为private上面的部分在其他单元中肯定可以访问,只要你引用了其单元。
 
在 Private 上面的部分對 TFormCapPara 這個類別而言 , 應該等同於 Public 的層級 , 因此 XXX 和 YYY 的調用是相同的
 
private 部分声明的方法和变量都不可以重载和继承,public可以。在同一单元里XXX,YYY的调用没有区别,但是他们在虚拟方法表里的存放是不同的。建议看看 李维的《inside vcl》
 
对duhai_lee而言:
在同一单元中,看起来的确没有差别,可是,在不同的单元中呢?
可惜几乎没有一本书上这样回答过。
 
这么不相信我,是published部分的,
不信你可以用view explorer 左边对应窗体下展开published部分,
你可以看到所有的private上面的部分
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部