[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/10 00:20 / Filesize : 151 KB / Number-of Response : 754
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

米国国防省の標準高等言語エイダ(Ada)を語れ!



1 名前:名無しさんは伊達じゃない [02/01/08 21:29]
どうよ?

583 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 20:35:12 ]
>>580
oopweb.com
ttp://oopweb.com/Ada/Documents/AdaLinux/VolumeFrames.html?/Ada/Documents/AdaLinux/Volume/book.html
とかどうだ。
コピーコンストラクタのようなものと書かれてはいるが

584 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 21:34:42 ]
>>580
a := b;としたらAdjust(a);が呼ばれる。
例えば中にポインタがあったりして、その中身まで複写しないと
いけないようなケースでコピー後の調整を行うのがAdjust。
全部コピーして回るC++のコピーコンストラクタとはちょと違う。

type a is new Controlled with record x : access Work_Area; y: Integer; end;
procedure initialize(obj:in out x) is begin obj.x := new Work_Area; end;
procedure Free is new Unchecked_Deallocate(...);
procedure finalize(obj:in out x) is begin Free(obj.x); end;
とすると必要なAdjustは
procedure adjust(obj:in out x) is begin obj.x := new Work_Area'(obj.x.all); end;

x,yとも値は勝手にコピーされるけど、xは中身まで複製しないとその後共有してしまうしFinalizeで二重解放になってしまう。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<151KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef