あなたは私を助けてくれますか? 私は自分自身を純粋な仮想関数に渡しています。C++自己ミステリーに自己を渡す
nは私のクラスのポインタであるとdataCallbackは独自の(純粋)仮想関数(私は私が下記の説明何が起こるか、なぜ私だけだろう、それは意味をなさない知っている)であるn->dataCallback(handler, n, hangup);
。
は今宣言で:今
void MyClass::dataCallback(int handler, void *cbData, bool hangup) {
MyClass *This = (MyClass*) cbData;
....
}
私は、実行時に、この(オブジェクトのポインタ)にこの(上記varaiable)を比較するときは、私が取得:
- 値のpoiners(オブジェクトのアドレス)は異なります。
- メンバー(私は>メンバー)をチェックするとき、私はそれらの中で異なる値を見つけます。 (これは正しい値ですが、これは未定義の(私にとってはランダムな)値を含んでいますが、呼び出し元側では値が当然正しいので、呼び出し自体の間に魔法のように変化するようです
。間に地球上でこれを可能にどのように?任意のアイデア?
私はこの上で瞑想2時間を費やしてきた、また、結果なしで他のプログラマを尋ねた。
複数の継承を使用していますか? – sth
私の編集内容を確認してください。スタックオーバーフローは[markdown](http://stackoverflow.com/editing-help)を使用しており、インデントコードブロックなどの基本的な部分に少なくとも慣れている必要があります。 – meagar
[this](http://stackoverflow.com/a/3725440/140719)または[that](http://stackoverflow.com/a/3108745/140719)は役に立ちますか? – sbi