私は、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フィールドを再割り当てできると思われるベースタイプにタグを付ける方法がわかりません。(タグ付けしないと、コンパイラは競合する宣言について不平を言います。)
誰かがこれに光を当てることができますか? 私はオブジェクト指向プログラミング全般にまったく慣れていないので、Ada の型アプローチは通常のクラス アプローチよりもややこしいと感じています。