Me da a mi que un profesor ha mandado ejercicios sobre arboles (no eres el primero que pregunta una cosa parecida).
Lo primero es, que no es obligatorio crear un constructor/destructor. Por lo que estás líneas:
No harían falta, el propio compilador te los crea por defecto.
Tampoco es imprescindible usar el operador this para acceder a parametros dentro de la propia clase:
Código C++:
Ver originalSkill(char * name, char* desc, int level)
{
this->name = name;
this->description = desc;
this->level = level;
}
Podría simplificarse a :
Código C++:
Ver originalSkill(char * Name, char* Desc, int Level)
{
name = name;
description = desc; // Precaución, estas asignando punteros no contenidos.
level = level;
}
Lo mismo con:
Código C++:
Ver originalchar* getName(){ return name;}
char* getDescription() { return description;}
int getLevel(){ return level;}
Y bueno el código es muy largo pero creo que has liado algo con los char* (eso de pasar punteros a funciones y clases no me gusta nada). Creo que sería más comodo usar strings:
Además la comparación entre dos strings es inmediata:
Código C++:
Ver originalif (texto1 == texto2)
{
// Tal y tal
}
La funcion strcmp es muy propensa a errores, es necesario que ambas cadenas tengan un caracter vacío '\0' al final o la función fallará.