C++相談室 Part4
■ このスレッドは過去ログ倉庫に格納されています
0686681
NGNG>特定の関数内からしかアクセスできない変数を考えています。
>(↑=特定の関数どうしで変数を共有したい、とも言い換えられます。)
それを文字通りに「特定の関数内からしかアクセスできないメモリ =
クラスオブジェクトのprivate宣言されたメンバデータ」
って回答しかない。コンパイル時に弾くにはこれしかないね。
で、それをクラス間にまたがって行うには>>684の言うように
friendしかないと。
>Perlのlocal変数はわれながらいいたとえだと思ったのに。(;´Д`)
Perlのlocalがグローバルシンボルテーブルを一時的に上書きするのと
C++で「特定の関数で値を共有する」というのとでは意味も前提もまる
っきり違う。グローバルな特殊変数に基づいた振る舞いをするサブルー
チンの振る舞いを変更したいときにlocal宣言で特殊変数を一時上書きして
やったりするが、そういうシンボルベースの動的な振る舞いとMFCがラップ
したm_hDCのようなvolatile(システムによって非同期に変更される)な変数
の扱いとは全く別で、だから意味不明と書いた。
C++で同じシンボルで振る舞いを変更するには、参照の参照先を付け替える
かメソッドをオーバーライドするかしかない。
■ このスレッドは過去ログ倉庫に格納されています