
Sebastián Buitrago
PreguntaCual es la diferencia entre declarar la clase con punteros y sin punteros?

N40 M10
¿Eso significa que siempre es mejor utilizar punteros?

marco antonio
simple de la forma tradicional si tu declaras tus variables estas ocuparan un espacio en memoria la ocupes o no y estas solo liberaran su memoria al concluir el bloque de código o la finalización del programa, el problema viene si tienes no se unas 1000 o mas variables y créeme las vas a tener para empezar el primer problema seria ¿cuantas variables necesitara el programa realmente no lo sabes puede ser 1 o 1001 en el mejor de los casos si tienes 1 hay 999 que te roban memoria de manera inutil ese el problema de la variables tradicionales ""entre comillas"".
Con punteros no hay limites puedes hacer que vivan y mueran cuando quieras liberando memoria a tu antojo con delete.
Segundo puedes crear tantos objetos de la clase como lo pida el programa es decir programas las condiciones para el programa reserve y gestione por si solo la cantidad de objetos que necesite es como append de las listas de Python (los vectores lista y maps de C++ se la inventaron pero detalles menores) solo que mejor ya que usar, eliminar, reusar, convertir, transferir, crear, repuntar, reasignar y deconstruir a complacencia .
Y tercero con los punteros puedes castear tus objetos y convertir un objeto persona y convertirlo aun objeto perro suena raro pero en C++ puedes, este es el principio y la base del polimorfismo

Carlos Eduardo Gomez García
Primero recuerda que no está declarando la clase, sino haciendo una instancia de la clase, es muy diferente declarar una clase a instanciarla 👀.
Ahora, con respecto a tu pregunta, la diferencia es que básicamente con un puntero tienes la dirección de memoria de dicha instancia, te recomiendo repasar la clase de punteros para que lo entiendas un poquito mejor. 😄