値構造体をメンバに持つクラスについて、値構造体のポインタを取得するには?


テイラー  2013-02-04 21:35:39  No: 73606  IP: 192.*.*.*

value struct VS{};
ref class RC
{
VS vs1;
}
RC rc1;
とある時、
rc1->vs1のポインタVS*を取得するにはどう表現すればよいのでしょう?
初等的な質問かもしれないですが、どなたか教えて頂ければと思います。

編集 削除
επιστημη  URL  2013-02-05 04:38:19  No: 73607  IP: 192.*.*.*

&rc1.vs1 じゃなくて?

編集 削除
テイラー  2013-02-05 06:50:47  No: 73608  IP: 192.*.*.*

rc1が参照クラスなので、メンバをポイントは、rc1->vs1;で良いと思うんです。
少し調べたら(&rc1)->*vs1;かもしれないと思われましたが、VS1*を引数にする関数に渡そうとするとコンパイルエラーとなりました。
いやはや・・・。

編集 削除
tetrapod  2013-02-05 18:51:49  No: 73609  IP: 192.*.*.*

> コンパイルエラーとなりました。
と書くのではなくて、エラーメッセージを省略せずそのまま掲載するといいだろう。
まあ書き込む前に検索してみるともっといいわけだが。

「ポインタ」という用語は unmanage なものに対して使うのに対して
提示 ref class RC は manage なもの。
マネージオブジェクトのアンマネージポインタは取得できない。

どうしたらいいかは、どうしたいか次第。

編集 削除
テイラー  2013-02-05 19:29:35  No: 73610  IP: 192.*.*.*

value struct  VS{};
VS vs0;
ref class RC
{
VS vs1;
};
RC rc1;
void f1(VS*);

と宣言して、

f1(&vs0);
という呼び出しはコンパイル可能、
f1(rc1->vs1);
という呼び出しはコンパイルエラーとなるわけですが、関数f1にrc1のメンバvs1を渡す方法があるか、という質問です。

要領が悪い質問だったようで、お手数をお掛けしております。

編集 削除
tetrapod  2013-02-05 20:46:03  No: 73611  IP: 192.*.*.*

その答えは既に書いたとおり「不可能」
代替策はあるが、どの手法をとるべきかは案件次第

編集 削除
tetrapod  2013-02-05 20:46:04  No: 73612  IP: 192.*.*.*

その答えは既に書いたとおり「不可能」
代替策はあるが、どの手法をとるべきかは案件次第

編集 削除