私のクラスに
は、ノードの 1 つに簡単にインデックスを付けることができるように、添字演算子をオーバーロードしたいメンバー変数std::vector<node*>
childrenがあります。
その関数のクラスの減速は次のとおりです。
node* operator[](int index);
その関数のクラス定義は次のとおりです。
node* class_name::operator[](int index){
return children[index];
}
ただし、この関数は期待どおりにポインターを返さないようです。
これが私に問題を引き起こしている機能です:
void Print_Tree(node* nptr, unsigned int & depth){
if (NULL == nptr) {
return;
}
//node display code
for (int i = 0; i < nptr->Number_Of_Children(); ++i){
Print_Tree(nptr[i],depth+1); //<- Problem Here!
}
//node display code
return;
}
私が得るエラーは次のとおりです。
エラー: 再帰呼び出しで 'node' を 'node*' に変換できません
ノードへのポインターが必要なときにノードが返される理由がわかりません。
オーバーロードされた関数に何か問題がありますか?
再帰呼び出しでノードを逆参照してみました:
Print_Tree(*nptr[i],depth+1);
Print_Tree(*(nptr[i]),depth+1);
Print_Tree(nptr->[i],depth+1);
無駄に!
私は何を間違っていますか?