Ada中无约束的可变类型的数组

问题描述 投票:2回答:1

我试图创建一个无约束的可变类型元素的数组;但是,由于元素不受约束,我得到了这个错误:“数组声明中的无约束元素类型”。

这是我的方型声明:

type C_square(size : bRange) is tagged record

private

type C_square(size : bRange) is tagged record
  bConstaint : uint8 := size; 
  coord : T_coord;            
  color : e_color := unknown; 
end record;

这里出现了错误:

type C_board(size : bRange) is tagged limited private; 

type square_matrix is array (uint8 range <>, uint8 range <>) of C_square; -- here is the problem C_square is unconstrained

private
type C_board(size : bRange := MIN_SIZE) is tagged limited record
  bSize    : uint8 := size;
  square_m : square_matrix(1..size, 1..size);
end record;

有没有任何解决方案可以让我拥有一系列无约束的可变元素?

arrays types ada
1个回答
3
投票

你不能拥有一系列不受约束的元素。

一些替代品:

  • 使用不定矢量。 (好!)
  • 创建一个对您的不定类型的访问数组。 (坏!)
© www.soinside.com 2019 - 2024. All rights reserved.