C++ dev-c++;编译器错误没有匹配的函数

C++ dev-c++;编译器错误没有匹配的函数,c++,binary-tree,C++,Binary Tree,我以前使用过这段代码,但有一个新问题,旧代码的链接是 我有一个错误,在函数“int main()”中声明没有匹配的函数来调用“binaryTreeType::insert(int&)”,候选函数是:void binaryTreeType::insert()[with elemType=int]不确定这是什么。代码张贴在下面,任何帮助都将受到感谢,提前感谢 #include <iostream> using namespace std; template <class ele

我以前使用过这段代码,但有一个新问题,旧代码的链接是

我有一个错误,在函数“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;


 }
#包括
使用名称空间std;
模板
结构节点类型
{
int数据;
nodeType*lLink;
nodeType*rLink;
};
模板
类binaryTreeType//main类
{
公众:
binaryTreeType();//构造函数
~binaryTreeType();//析构函数
void swapusbtreenodes();//声明swapusbtreenodes
空心Swapusbtreenodes(节点类型*);
无效插入();
void printree();
私人:
nodeType*root;//声明根指针
nodeType*temp;//声明根指针
};
模板
void binaryTreeType::swapusbtreeNodes()
{
swapusbtreenodes(根);//显示新根
}
模板
void二进制树类型::swapusubtreenodes(节点类型*p)
{
根=温度;
nodeType*root;//根的指针
nodeType*temp;//temp的指针
if(p==NULL)//检查空指针
{
返回;
}
其他的
{
swapusbtreenodes(p->lLink);//执行子树
swapusbtreenodes(p->rLink);
temp=p->lLink;//交换指针
p->lLink=p->rLink;
p->rLink=温度;
}
root=temp;//根集合等于temp
}
int main()
{
二叉树型;
int-num;

cout模板成员函数
binaryTreeType::insert()
不接受任何参数。代码尝试使用类型为
int

的参数调用它。您的
insert
方法声明不接受任何参数。

错误非常清楚。您已声明
insert
不接受任何参数,但稍后您希望使用一个参数调用它。
tree.insert(num);
将参数传递给一个不接受任何参数的函数。就风格而言,在
二进制树类型(树);
中不需要括号,而且看起来很混乱。将其设置为
二进制树类型树;
@PeteBecker,我正试图弄清楚
二进制树类型(插入)是什么;
当时我只是在寻找错误的迹象。迷惑是对的。很抱歉,我仍然没有理解我做错了什么。我已尝试从我的“类binaryTreeType”更改我的“void insert();”声明一大堆不同的方法,每次尝试不同的方法时,我都会遇到不同的错误,但没有一个能解决我的原始问题。@Angie-显示一些代码。最有可能的是,参数类型应该是
elemType
或const
elemType&