0
如何使用函數初始化Base
類型的派生類型?使用函數代替過程初始化派生類型
如果我可以使用function Create
而不是程序,它會更好看。在取消
procedure Main is
type Base is abstract tagged record
Number : Integer;
end record;
type Base1 is new Base with null record;
type Base2 is new Base with null record;
--function Create return Base'Class is
--begin
--return (Number => 1);
--end;
procedure Create (B : out Base'Class) is
begin
B.Number := 1;
end;
B1 : Base1;
B2 : Base2;
begin
Create (B1);
Create (B2);
end Main;
生成結果,當function Create
:
type of aggreate cannot be class-wide
我不希望這樣的錯誤。
但我只有一個創建功能?所有派生類型的初始化都是相同的。 – Jossi 2015-04-04 14:37:37
我認爲你不能在記錄聲明中使用'Number:= 42;'之類的東西嗎? – 2015-04-04 20:48:52
是的,適用於常量,但我對動態分配感興趣。 – Jossi 2015-04-04 21:17:14