gpt4 book ai didi

ada - 如何从抽象标记记录中设置和派生类型?

转载 作者:行者123 更新时间:2023-12-02 15:31:48 24 4
gpt4 key购买 nike

我在理解 Ada 中的继承和一些语法时遇到了一些困难。

我的目标是从带有记录的抽象类型派生,并在记录字段中使用不同的数据类型。这是我能够编译的内容:

type Base is abstract new Parent.ParentType with record
X:Access_Type;
end record

type Child is new Base with record
n:Integer;
end record;

但是我不想有这个额外的 n 字段,我希望 X 是子类型中的整数。我无法让编译器对此感到满意。我想要的是类似以下内容:

type Base is abstract new Parent.ParentType with tagged record
X:Access_Type;
end record;

type Child is new Base with record
X:Integer;
end record;

不幸的是,我不知道如何标记基本类型,我认为这将允许我重新分配 X 字段。 (如果没有标记,编译器会提示声明冲突。)

有人可以解释一下吗?一般来说,我对 OO 编程相当陌生,我发现 Ada 的类型方法比通常的类方法更令人困惑。

最佳答案

您确定您不只是想嵌套一些记录吗?

   type Base is abstract new Parent.Parent_Type with record
X : Float;
end record;

...

type child_rec is 
X : integer;
end record;

...

   type Child is new Bases.Base with record
C : Child_Rec;
end record;

这将允许您引用

My_Base.X;

My_Base.C.X;

当然,这也可以在没有任何面向对象功能的情况下完成......

关于ada - 如何从抽象标记记录中设置和派生类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12869590/

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