|
|
1
5
注:嵌入式例程<&燃气轮机;私有/受保护的方法。
不管可见性如何,都可以通过RTTI使用delphi2010调用类上的方法。我已经详细说明了如何在 this article . This Question 有更多的细节和很好的例子代码 accepted answer . 如果你在两个不同的单位,你可以使用受保护的方法黑客访问受保护的方法。详情见 this article |
|
|
2
7
C++中的“朋友”类/函数是不同的——它们是类访问方法,而在示例中,您使用的是简单的过程/函数。 在Delphi中,在同一单元中声明的所有过程/类都自动成为“friend”,除非 严格保密
|
|
|
3
3
是的,您可以从外部世界访问嵌套在其他(父)子例程中的子例程。虽然有点棘手。我在网上找到了这个方法。 如何将嵌套例程作为过程参数传递(32位) Delphi通常不支持将嵌套例程作为过程参数传递:
但是,上面的示例中有一个陷阱-如果“内部”例程引用在从testpass调用“内部”过程之前推送到堆栈上的任何变量(calltestpass参数-如果有,或calltestpass中的局部变量-如果有),则系统很可能崩溃:
被对testpass例程和“内部”过程的调用“破坏”了 错误地计算参数和局部变量的位置 (请不要责怪德尔福)。 解决方法是在开始之前设置正确的堆栈上下文 从“testpass”内部调用“inner”。
|
|
|
4
2
不,没有办法按你的要求去做。这个
如果
概念 访问权限修饰词 因为我们不是在谈论课程,所以在这里并不重要。单位有 接口 分区,实际上与 公众的 私有的 |