single
Challenge: Constructor and Attributes
Desliza para mostrar el menú
Uno de los usos principales de los constructores es inicializar los atributos de la clase. Un constructor por defecto, por ejemplo, puede utilizarse para establecer valores iniciales. Por ejemplo:
main.cpp
1234567891011121314#include <iostream> class Person { public: Person() { name = "undefined"; } std::string name; }; int main() { Person person; std::cout << person.name; }
Si no se especifica un valor para el atributo name del objeto, se establecerá en underfined por defecto. Puedes intentar eliminar este constructor para ver qué cambios ocurren.
Inicialización de atributos con el constructor
Al igual que las funciones, los constructores pueden recibir parámetros, lo que permite diferentes argumentos durante la creación de objetos. También es posible sobrecargarlos para manejar distintas cantidades de argumentos.
main.cpp
123456789101112131415161718class Person { public: Person(std::string _name, std::string _surname, int _age) { name = _name; surname = _surname; age = _age; } std::string name; std::string surname; int age; }; int main() { Person person("Bob", "Song", 23); }
Desliza para comenzar a programar
Imagina que estás desarrollando un sistema de mapeo sencillo. Necesitas crear una clase Location que represente un punto en un mapa con un nombre y coordenadas. Tu tarea es implementar un constructor y un método para calcular la distancia a otra ubicación.
- Implementación de un constructor que inicialice los tres campos:
- El constructor debe recibir tres parámetros: un
std::stringpara el nombre y dos valoresdoublepara las coordenadas x e y. - Dentro del constructor, asigna el parámetro del nombre al campo
namedel objeto. - Asigna el parámetro de la coordenada x al campo
xdel objeto. - Asigna el parámetro de la coordenada y al campo
ydel objeto.
- El constructor debe recibir tres parámetros: un
- Implementación de un método
distanceToque reciba otro objetoLocationcomo parámetro:- Accede a las coordenadas
xeytanto del objeto actual como del otro objeto. - Calcula la diferencia en las coordenadas
x:other.x - x. - Calcula la diferencia en las coordenadas
y:other.y - y. - Calcula la distancia usando la fórmula:
sqrt(dx * dx + dy * dy). - Devuelve la distancia calculada como un
double.
- Accede a las coordenadas
Ejemplo
Location("Home", 0.0, 0.0) y Location("Office", 3.0, 4.0) -> 5.0
Location("Park", 1.0, 2.0) y Location("School", 4.0, 6.0) -> 5.0
Location("Cafe", -1.0, -1.0) y Location("Library", 2.0, 3.0) -> 5.0
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla