C++相談室 part124 [無断転載禁止]©5ch.io
レス数が950を超えています。1000を超えると書き込みができなくなります。
0968デフォルトの名無しさん (ワッチョイ 7b5b-xKv1)
2016/05/20(金) 19:36:46.02ID:gU7EupTq0内部クラスから外側クラスのインスタンスメンバを参照したいのですが、
ググッた感じでは参照を渡すしかないっぽいのですが、これってマジですか?
マジなら、面倒なので内部クラスのstaticに入れてしまおうかとも思っているのですが、これってありですか?
(外部クラスが生成される度に内部クラスが別々に生成されて大丈夫なのか、
それとも内部クラスとして書いても外にフラットに書いても同じで、クラスで唯一のstatic変数となってバグりますか?)
或いはこの場合に一般的に使われるような手法はありますか?
参考コード:動かしていないので雰囲気だけ確認してください。
class OuterClass {
class InnerClass {
static OuterClass* parent; // <- これあり?それとも OuterClassを複数作成しても唯一になって駄目?
void method_cpp0(int score){
parent->score += score; // <- こう使うつもり
}
void method_cpp1(int score, OuterClass* p) { // <- こうじゃないと駄目?
p->score += score;
}
void method_javascript(int s){
score += s; // JavaScriptはこれができる。これができればうれしい。
}
void method_java(int score){
OuterClass.this.score += score; // Java はこれができるらしい。これでもいい。
}
};
int score;
};
レス数が950を超えています。1000を超えると書き込みができなくなります。