PB 電子会議室
カテゴリ:ユーザオブジェクト
日付:2001年02月07日 19:14 発信者:ryochan
題名:RE(4):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは?
Takaさん、こんにちは。
発言を拝見してちょっと気になったので...
全てのクラスへのアクセスは
ハンドルではなく内部ではポインタ
(アドレス参照)でアクセスします。
ハンドルはWinメッセージ対象の
識別情報です。
もしかして分かりにくい方が
いらっしゃるかもしれないので
簡単に書くと
f_hoge(datawindow p_dw)とし
f_hoge(dw_1)と呼び出すと
配置はめちゃくちゃですが、
◇□□□□◇□□□■■■■■■■■■■■■■■■■(メモリ)
↑????↑??→|← dw_1生成領域 → |
| |??→|プロパティ|メソッド|・・・|
dw_1 p_dw
ポインタ ポインタ
(どちらもアドレス情報)
dw_1のポインタ情報がp_dwのポインタへ格納され
結果的にp_dwも同じdw_1の生成領域についてアクセス
することになります。
dw_1もp_dwも実体は同じとなるということです。
メンバ内にもポインタが存在する可能性があるため、
インスタンスの生成領域のサイズ=実インスタンスサイズとは
限りません。
参照渡しでオブジェクトを渡すとさらに
▲→◇→→dw_1
↑ ↑
| dw_1のポインタ
dw_1のポインタのポインタ
と▲のデータをp_dwのポインタに渡せ
ということになり、
dw_1のアドレスを指していないので
うまくいかないのでは?
(試していませんが、アクセス例外が発生するのでは)
付加情報:
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.