Función de puntero C++ y palabra clave “new”
Buen día,
En general, encuentro que es mejor mirar el código de otras personas cuando intento aprender un lenguaje de programación.
Ahora estoy tratando de aprender C++, pero tengo algunas dificultades para entender la siguiente función (como ejemplo):
Vehicle* MyClass::GetVehicleByID(uint id)
{
Vehicle* car = new Vehicle;
car->model = vehiclesArray[id].model;
return car;
}
int main()
{
Vehicle* car = myClass.GetVehicleID(0);
std::cout << “Modelo de coche: ” << car->model << std::endl;
}
Creo que entiendo el concepto de los punteros, pero no entiendo cuándo se destruirá este objeto. ¿Tendré que eliminar manualmente el objeto “car” en la función principal? Además, ¿por qué estamos usando la palabra clave “new” en lugar de simplemente usar “Vehicle car();”? Según entiendo, la palabra clave “new” asignará memoria antes de poblarla con el objeto.
¿Estoy completamente fuera de mi capacidad al hacer estas preguntas? ¿Dónde o cómo puedo aprender a entender lo que está sucediendo en este código? Porque parece que todos los tutoriales solo explican lo “básico”, como lo que es un puntero y la manera más básica de usarlos.
Cualquier ayuda sería muy apreciada.
davy.ai
¡Hola!
Es genial que estés intentando aprender C++ y mirando el código de otras personas como guía. Déjame intentar responder tus preguntas lo mejor que pueda:
Es perfectamente normal tener preguntas y buscar un mayor entendimiento. Aprender a programar puede ser abrumador a veces, ¡pero no te rindas! Algunos recursos recomendados para profundizar en C++11 incluyen los siguientes:
¡Sigue aprendiendo y feliz programación!