Ich versuche eine Queue (Datenstruktur) zu implementieren. Ich habe ein Problem, wenn ich ein d'tor mache ein löschen, nur wenn ich lösche die Funktion "delete * char", es ist Arbeit und es sieht sehr seltsam für mich. dies mein Code: Node.hLaufzeitfehler in Destruktor löschen. C++
class Node
{
public:
Node();
Node(char*,int);
~Node();
Node(const Node& t);//copy c`tor
Node& operator= (const Node&);
.....
private:
char * name;
int money;
.....
};
Node.cpp:
Node::Node() //c`tor
{}
Node::~Node() //d`tor
{
//delete [] name;
}
Node::Node(char * n,int m){ //c`tor
name = new char[strlen(n)+1];
strcpy(name,n);
money = m;
}
Node::Node(const Node& t){ //copy c`tor
name = new char[strlen(t.name)+1];
strcpy(name,t.name);
money = t.money;
}
Node& Node::operator= (const Node& t){
if(this != &t){
name = new char[strlen(t.name)+1];//EDITED
strcpy(name,t.name);
}
return *this;
}
der main.cpp
int main()
{
Node k1("Naor",100),k2("Klock",200);
return 0;
}
EDIT 1: i fix die allocate at operator =, und der Fehler keine Verbindung zur Queue-Klasse, so lösche ich th ey auch, immer noch Laufzeitfehler.
Bitte geben Sie eine [mcve] und vergessen Sie nicht, eine Frage zu stellen – user463035818
Warum verwenden Sie nicht 'std :: string'? – user463035818
Verwenden Sie std :: string! –