gpt4 book ai didi

ada - Ada 的 T'Class 基础知识

转载 作者:行者123 更新时间:2023-12-04 23:48:33 25 4
gpt4 key购买 nike

问这个有点尴尬,但我知道这是最好的。我已经用 Ada 编程多年了,并且几乎能流利地理解这门语言的每一部分。然而,我似乎从来没有能够把我的头放在 T'Class 上。借用别人,有人能“像我五岁那样解释吗?”。

编辑:我买它只是为了拥有,但其中包含对 T'Class 的精彩描述和示例使用;我引用了 Michael B. Feldman 的“Ada 95 的软件构建和数据结构”。

最佳答案

如果你开始

package P1 is
type T is tagged private;
procedure Method (Self : T);
end P1;
package P2 is
procedure Proc (Self : T); -- not a primitive
procedure Proc2 (Self : T'Class);
end P2;

在 Proc 的情况下,您告诉编译器应该始终将参数精确地视为 T 类型(请记住,标记类型始终通过引用传递,因此实际类型当然可以从 T 派生,您不会丢失额外的数据)。特别是,这意味着在 Proc 的主体内,对 Method 的所有调用都将完全是对 P1.Method 的调用,而不是对覆盖 Method 的调用。

在 Proc2 的情况下,你告诉编译器你不知道静态的确切类型,所以它需要插入额外的代码来在运行时解决问题。在 Proc2 的主体内对 Method 的调用可以是对 P1.Method 的调用,也可以是对另一个覆盖方法的调用。

基本上:使用 'Class,事情在运行时得到解决。

关于ada - Ada 的 T'Class 基础知识,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28468799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com