开发人员在Dev C 中编译代码时,我会收到此错误:[错误] ID返回1退出状态

dev When I compile my code in Dev C++, I get this error: [Error] Id returned 1 exit status

本文关键字:错误 ID 状态 退出 返回 Dev 编译 代码 开发      更新时间:2023-10-16

这是简单二进制树程序的代码:

 #include <iostream>
 using namespace std;
template <class Tree>
class node
{
public:
    node()
    {
        this->tree=NULL;
        this->leftnode=this->rightnode=NULL;
    };
    ~node();
    node(Tree* base)
    {
        this->tree=base;
        this->leftnode=this->rightnode=NULL;
    };
    Tree* getnodevalue()
    {
        return this->tree;
    };
    node* getleftnode()
    {
        return leftnode;
    };
    node* getrightnode()
    {
        return rightnode;
    };
    void newleft(node* val)
    {
        this->leftnode=val;
    };
    void newright(node* val)
    {
        this->rightnode=val;
    };
    void newnode(Tree* val)
    {
        this->tree=val;
    };
    int chkleaf()
    {
        if(this->leftnode==NULL && this->rightnode==NULL)
            return 1;
        return 0;
    }
    void insert(node* nextnode, int* value)
    {
        node <int>* nodecounter= new node<int>(value);
        node<int> *p, *q;
        p=q=nextnode;
        while(*value!=*(p->getnodevalue()) && q!=NULL)
        {
            p=q;
            if(*value<*(p->getnodevalue()))
                q=p->getleftnode();
            else
                q=p->getrightnode();
        };
        if(*value==*(p->getnodevalue()))
        {
            cout<<"Duplicate"<<*value<<"n";
            delete nodecounter;
        }
        else if(*value<*(p->getnodevalue()))
            p->newleft(nodecounter);
        else
            p->newright(nodecounter);
    };

    private:
        Tree* tree;
        node* leftnode;
        node* rightnode;
};

int main(int argc, char* argv[])
 {
          int newtree[5]={0,45,67,34,24};
          node<int>* node1= new node<int>();
          node1->newnode(&newtree[0]);
    for(int i=1; newtree[i]>0; i++)
    {
      node1->insert(node1, &newtree[i]);
    };  
    return 0;
 }

我不明白问题是什么,我以前从未遇到过这个错误。是编码问题还是其他问题?真的很感激一些见解

链接器抱怨丢失destructor定义。

更改

node();

to

~node() {}

或,如果您使用的是C 11

~node() = default;

您还需要使用delete语句在Destructor中发布二手内存。