PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
14575 01/02/13 13:48:36 RE(22):PB6.5: PBの動的配列の扱い By ryochan
14567 01/02/13 12:12:35 RE(21):PB6.5: PBの動的配列の扱い By M.M
14566 01/02/13 12:07:30 RE(20):PB6.5: PBの動的配列の扱い By ryochan
14562 01/02/11 01:13:54 RE(19):PB6.5: 可変長データのメモリ格納機構(2) By ryochan
14561 01/02/11 00:38:01 RE(18):PB6.5: 可変長データのメモリ格納機構 By ryochan
14558 01/02/09 22:02:51 RE(17):PB6.5: String型変数のメモリアロケートについて By M.M
14557 01/02/09 20:54:32 RE(16):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By Taka
14546 01/02/09 15:22:03 RE(15):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By ryochan
14535 01/02/09 02:29:55 RE(14):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By Taka
14532 01/02/08 21:01:07 RE(13):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By ryochan
14530 01/02/08 16:34:56 RE(12):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By MIYAHARA
14526 01/02/08 13:50:18 RE(11):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By ryochan
14525 01/02/08 17:58:54 RE(10):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By ryochan
14524 01/02/08 13:05:17 RE(9):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By ryochan
14523 01/02/08 13:03:51 RE(8):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By ryochan
14522 01/02/08 12:45:26 RE(7):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By MIYAHARA
14519 01/02/08 00:02:23 RE(6):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By Taka
14518 01/02/07 23:51:17 RE(5):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By Taka
14516 01/02/07 19:14:54 RE(4):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By ryochan
14508 01/02/07 12:33:02 RE(3):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By TKS
14506 01/02/07 02:16:07 RE(2):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By Taka
14490 01/02/06 09:22:09 RE(1):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By aqua
14482 01/02/05 12:30:35 PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは? By TKS

カテゴリ:ユーザオブジェクト
日付:2001年02月08日 12:45 発信者:MIYAHARA
題名:RE(7):PB6.5: 関数の引数に、値(VALUE)としてDW型を指定した場合に、オリジナルが変更されるのは?

ryochanさん、こんにちは。

最近私も同様のことで悩みました。

↓引用順を変更しています。

>参照渡しでオブジェクトを渡すとさらに
>▲→◇→→dw_1
>↑ ↑
>| dw_1のポインタ
>dw_1のポインタのポインタ

>と▲のデータをp_dwのポインタに渡せ
>ということになり、
>dw_1のアドレスを指していないので
>うまくいかないのでは?
>(試していませんが、アクセス例外が発生するのでは)

これについて私の方で試してみた所、
問題なく動作しました。

この件についてアシストに質問をした所、
『結局オブジェクトを引数として渡す場合は、
  値渡しも参照渡しも動作的には同じだと考えてよいです。』
とのことでした。

また
『関数やイベントの引数にオブジェクトを値渡しすると、「オブジェクト
  のプロパティや実体が渡されるのではなく、オブジェクトデータへの参照
  が渡される」という理解は正しいです。』
とのことでしたので、オブジェクトを引数などに渡す時は
ポインタ(のようなもの?)で渡されていると考えて良いようです。
私も納得がいきます。

私の想像なのですが、通常オブジェクトを生成する場合

datawindow dw_1
dw_1 = create datawindow

のように記述すると思うのですが、
一行目で、p_dwポインタのメモリ領域(アドレス値を保持するため)◇を用意して、
二行目で、オブジェクトの実体である■のメモリ領域を用意し、
そのアドレスをp_dwにセットしているのだと思います。

>◇□□□□◇□□□■■■■■■■■■■■■■■■■(メモリ)
>↑????↑??→|←  dw_1生成領域 → |
>|    |??→|プロパティ|メソッド|・・・|
>dw_1   p_dw
>ポインタ ポインタ
>(どちらもアドレス情報)

とここでちょっと疑問に思ったのですが、

この図で、プログラマはポインタである◇を
ローカル、グローバルと任意に指定できるのですが、
オブジェクトの実体である■の部分はどうなのでしょうね?
グローバルなのでしょうか?

この辺はアセンブルとかを勉強すれば理解できるのかな?。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows98
DBMS Oracle SQL*Net 8
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.