-2

私は以前にこのコードに取り組んでいましたが、新しい問題があり、古いコードへのリンクはBloodshed Dev-C++ コンパイラ エラー *Binary Treesです。

関数 'int main()' で、'binaryTreeType::insert(int&)' 候補の呼び出しに一致する関数はありません: void binaryTreeType::insert () [with elemType = int] 本当にわからないは。コードは以下に掲載されています。

#include <iostream>

using namespace std;

template <class elemType>
struct nodeType
{
       int data;
       nodeType *lLink;
       nodeType *rLink;
};
template <class elemType>
class binaryTreeType //main class
{
      public:
             binaryTreeType(); //constructor
             ~binaryTreeType(); //destructor
             void swapSubtreeNodes(); //declares swapSubtreeNodes
             void swapSubtreeNodes(nodeType<elemType>*);
             void insert();
             void printTree();
      private:
              nodeType<elemType>*root; //declares root pointer
              nodeType<elemType> *temp; //declares root pointer
};
template <class elemType>
void binaryTreeType<elemType>::swapSubtreeNodes()
{
     swapSubtreeNodes(root); //displays new root
}
template <class elemType>
void binaryTreeType<elemType>::swapSubtreeNodes(nodeType<elemType> *p)
{
    root = temp;
    nodeType<elemType> *root; //pointer for root
    nodeType<elemType> *temp; //pointer for temp
    if (p == NULL) //checks for empty pointer
    {
          return;
    }
    else
    {
        swapSubtreeNodes(p->lLink); //do the subtrees
        swapSubtreeNodes(p->rLink);                                  
        temp = p->lLink; //swap the pointers
        p->lLink = p->rLink;
        p->rLink = temp;
    }
    root = temp; //root set equal to temp
}
int main()
{
    binaryTreeType<int> (tree);
    int num;
    cout << "This is how we swap'em" << endl;
    cout << "Insert number (press enter after each one entered)." << endl;
    cout << "Enter -999 to complete" << endl;
    binaryTreeType<int> (insert);
    cin >> num;
    while (num != -999)
    {
          tree.insert(num);
          cin >> num;
    }
    cout << "The unswapped binary tree looks like this: " << endl;
         tree.printTree();
         cout << endl;
    cout << "The swapped binary tree looks like this: " << endl;
         tree.swapSubtreeNodes();
         tree.printTree();
         cout << endl;


 }
4

2 に答える 2

1

insertメソッド宣言はパラメーターを取りません。

于 2012-09-16T20:40:14.393 に答える
1

テンプレート メンバー関数binaryTreeType<elemType>::insert()は引数を取りません。コードは type の引数でそれを呼び出そうとしますint

于 2012-09-16T20:38:38.403 に答える