ページ 11

クラスへのポインタのポインタ

Posted: 2009年4月28日(火) 15:41
by ちゅん
こんにちは、久しぶりの投稿となります。
クラスへのポインタのポインタを用いてメンバにアクセスしたいのですが、
どうしたらいいのか分かりません…。

要するに
class hoge
{
public:
int a;
};
として、

hoge *b = new hoge;
hoge **c;
c = &b;
としたときに、cを用いてポインタbの指すクラスのメンバaにアクセスしたいのです。

c->aと試してみても、
error C2227: '->useParam' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
と出て、コンパイルできませんし、ネットでも調べてみましたが分からずじまいです。

どうかご存知の方がいらっしゃいましたら、ご教授願えますでしょうか。

Re:クラスへのポインタのポインタ

Posted: 2009年4月28日(火) 15:55
by toyo
(*c)->a
でアクセスできるのでは

Re:クラスへのポインタのポインタ

Posted: 2009年4月28日(火) 15:55
by 御津凪
ポインタのポインタからアクセスするなら、 "(*c)->a" で可能です。
これは、"(*c)" で参照元のポインタにしてから "->a" で参照する意味です。

ちなみに、
(*(*c)).a
でもアクセスできます。
また、
hoge*** d = &c;
なら、
(*(*d))->a
でアクセスできます。

Re:クラスへのポインタのポインタ

Posted: 2009年4月28日(火) 16:50
by ちゅん
toyoさん、御津凪さん、ありがとうございます!
おかげで無事コンパイルできました!!