PB 電子会議室
カテゴリ:ユーザオブジェクト
日付:2001年02月08日 00:02 発信者:Taka
題名:RE(6):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは?
(続きです)
>参照渡しでオブジェクトを渡すとさらに
>▲→◇→→dw_1
>↑ ↑
>| dw_1のポインタ
>dw_1のポインタのポインタ
>
>と▲のデータをp_dwのポインタに渡せ
>ということになり、
>dw_1のアドレスを指していないので
>うまくいかないのでは?
>(試していませんが、アクセス例外が発生するのでは)
??? オブジェクト型を返す引数を持つ関数って、たくさんありますけど...
PB標準のGetChild関数がいい例でしょう。
普通のOpen,OpenSheetなんかも、宣言レベルではwindow型のref引数です。
(関数の中で実体化されたインスタンスへの参照が格納されて返ってきます)
実際にはvalue渡しで十分なのに、refや readonlyで引数を定義してしまった関数でも、
f_xxx(dw_1) と呼び出しても正常に動きます。
GetChildと似たようなパターンで、window型やdatastore型を受け取る関数を
作っている開発者も多いと思います。
私もこのパターンを良くやりますが、何の支障もなく正しく動いています。
以上のことからも、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.