Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/03/2013, 12:14
amchacon
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: Problema en Arbol?

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:

Código C++:
Ver original
  1. Skill(){ }
  2. ~Skill(){ }

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 original
  1. Skill(char * name, char* desc, int level)
  2. {
  3.     this->name = name;
  4.     this->description = desc;
  5.     this->level = level;
  6. }

Podría simplificarse a :

Código C++:
Ver original
  1. Skill(char * Name, char* Desc, int Level)
  2. {
  3.     name = name;
  4.     description = desc; // Precaución, estas asignando punteros no contenidos.
  5.     level = level;
  6. }

Lo mismo con:

Código C++:
Ver original
  1. char* getName(){    return name;}
  2. char* getDescription() { return description;}
  3. 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:

Código C++:
Ver original
  1. string name = "Texto";

Además la comparación entre dos strings es inmediata:

Código C++:
Ver original
  1. if (texto1 == texto2)
  2. {
  3.  // Tal y tal
  4. }

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á.

Última edición por amchacon; 14/03/2013 a las 12:35