C++ でテンプレート クラスを使用しています。以下のようにクラスのオブジェクトを作成します。
Node<int> *rootNode = (Node<int> *) malloc(sizeof(Node<int>));
ここで、ノードにいくつかのエントリを挿入します。ノードがいっぱいになったことを確認したら、コードでルート ノードと同じタイプ名の新しいノードを作成し、必要なデータを保存します。以下は私の挿入方法です:
template <typename T>
RC Node<T>::Insert(void *key)
{
if(space() > 0) { // check if current node has ample space
// add data in the current node
}
else
{
siblingNode = new Node<T>();
if (this->Split(siblingNode, key)) {
if (siblingNode != NULL) {
siblingNode.display();
}
}
}
}
}
を使用して作成された新しいノードを表示しようとしています
siblingNode.display()
メソッドですが、コンパイルエラーが発生します
request for member ‘display’ in ‘siblingNode’, which is of non-class type ‘Node<int>*’
siblingNode が、挿入関数が呼び出されるノードと同じタイプ名であることを確認するにはどうすればよいですか?