PB 電子会議室
カテゴリ:ユーザオブジェクト
日付:2001年02月08日 13:50 発信者:ryochan
題名:RE(11):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは?
MIYAHARAさん、こんにちは。
ちょうど、私とレスのタイミングが
同じでした。
いろいろ調べていただいて
ありがとうございます^^
参照渡しでオブジェクトを渡すことについて
>これについて私の方で試してみた所、
>問題なく動作しました。
>この件についてアシストに質問をした所、
>『結局オブジェクトを引数として渡す場合は、
> 値渡しも参照渡しも動作的には同じだと考えてよいです。』
>とのことでした。
げっ!。そうなのですか?
私の環境がいけなかったのかな。
だからref宣言はややこしいですね。
内部で何をやっているのか分からないです。
物理的なメモリ格納機構につては
私のレスと同じで同意見です。
>とここでちょっと疑問に思ったのですが、
>この図で、プログラマはポインタである◇を
>ローカル、グローバルと任意に指定できるのですが、
>オブジェクトの実体である■の部分はどうなのでしょうね?
>グローバルなのでしょうか?
PB的にいうとグローバルですね。
ウィンドウにぺたぺた貼り付けている
コントロールはウィンドウクラスの
メンバクラスなので、ウィンドウが生成、破棄
とともに生成、破棄されます。
しかし、ウィンドウ内で動的に(手動で)生成された
インスタンスというのはウィンドウを親を持たないので
(アプリケーションになるなかな)
例えスクリプト終了やウィンドウが解放されて◇が解放されても、
データ部は残ったままです。
これは、データ部が宙ぶらりん状態となり
やばいというかメモリがもったいないです。
destroyをを行うと、データ部も解放されます。
(nvoには自動破棄というものが存在しますが、
そのデータ部を解放するタイミングが分からないため
あまり信用してませんが。)
PBのメモリマネージャも
ガーベッジコレクションをサポートしてますが
解放先のメモリを効率よく割り当てるのですよね
面白くなってきたのですが、
ちょっと仕事にとりかからないとやばくなってきたので、
また今晩ということですみません。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows98
DBMS Oracle SQL*Net 8
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.