2017-08-11 5 views
0

単一のステップでは、pobjChildにはそれに関連付けられているはずのすべての静的データが含まれていますが、 'mlstChildren'に追加されたノードには静的メンバーがありません。デバッガを使用すると、 'pobjChild'が正しく、 'mlstChildren'の間に子ノードのポインタアドレスが同じであることがわかります。その内容は 'pobjChild'の内容と一致しません。なぜですか?QListに、失う、オブジェクトを追加する静的メンバ

編集:

私はpobjCheckの内容が内容と一致して、デバッガで見ることができる
void clsXMLnode::appendChild(clsXMLnode* pobjChild) { 
assert(pobjChild != NULL); 
int intNewIdx = mlstChildren.length(); 
mlstChildren.append(pobjChild); 
clsXMLnode* pobjCheck = mlstChildren.at(intNewIdx); 
// ... 

を:
デバッガのバグのようです以下のように、私は私のappendChild方法を変更pobjChild正確にすべての静的メンバーはそのままですが、mlstChildrenをデバッガに展開すると、クラスアドレスがpobjChildに一致しますが、静的データの内容は一致しません。

+0

「静的データ」とはどういう意味ですか?静的メンバー変数を意味しますか?しかし、それらは実際には特定のオブジェクトのメンバーではなく、そのクラスのすべてのオブジェクト(インスタンス)がそれらを持っています。 –

+0

@Someprogrammerdude、私は、クラス内で定義された静的ポインタの負荷を持っています。例えば:const char clsXMLnode :: mcszAutosize [] = "autosize";静的データはクラスのすべてのインスタンスに共通している必要がありますが、何らかの理由でリストを見ると何らかの理由で静的データが表示されます。 – SPlatten

+0

@Someprogrammerdude、質問の編集を参照してください。 – SPlatten

答えて

関連する問題