Amb*_*ben 7 types pointers ada
我仍然对all关键字在一般访问类型中的工作方式感到困惑
有什么区别:
type int_access is access all Integer; 到 type int_access is access Integer;
例如:
type int_ptr is access all Integer;
Var : aliased Integer := 1;
Ptr : int_ptr := Var'Access;
Run Code Online (Sandbox Code Playgroud)
代码工作正常,但如果我删除all关键字,它会给出一个错误,结果必须是一般访问类型,我必须添加all.
池特定的访问类型——那些没有“all”的访问类型——只能用于使用“new”关键字在堆(或某些用户定义的存储池)中分配的对象。
所以这是可以的:
type Int_Ptr is access Integer;
Prt: Int_Ptr := new Integer;
Run Code Online (Sandbox Code Playgroud)
一般访问类型——带有“all”的那些——既可以用于堆分配的对象,也可以用于任何其他标记为“别名”的对象。所以这也可以:
type Int_Ptr is access all Integer;
Prt: Int_Ptr := new Integer;
Run Code Online (Sandbox Code Playgroud)
因此,简而言之,规则是:
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |