Desafío: Constructor y Atributos
Uno de los principales usos 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. Puede intentar eliminar este constructor para observar los cambios que 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 se pueden sobrecargar para manejar diferentes 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); }
Swipe to start coding
Imagina que estás desarrollando un sistema de mapeo sencillo. Debes 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.
- Implementar 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
- Implementar 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
Example
Location("Home", 0.0, 0.0) and Location("Office", 3.0, 4.0) -> 5.0
Location("Park", 1.0, 2.0) and Location("School", 4.0, 6.0) -> 5.0
Location("Cafe", -1.0, -1.0) and 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
Can you explain what a constructor is in more detail?
What does it mean to overload a constructor?
Can you give an example of initializing attributes with a constructor?
Awesome!
Completion rate improved to 3.13
Desafío: Constructor y Atributos
Desliza para mostrar el menú
Uno de los principales usos 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. Puede intentar eliminar este constructor para observar los cambios que 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 se pueden sobrecargar para manejar diferentes 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); }
Swipe to start coding
Imagina que estás desarrollando un sistema de mapeo sencillo. Debes 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.
- Implementar 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
- Implementar 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
Example
Location("Home", 0.0, 0.0) and Location("Office", 3.0, 4.0) -> 5.0
Location("Park", 1.0, 2.0) and Location("School", 4.0, 6.0) -> 5.0
Location("Cafe", -1.0, -1.0) and Location("Library", 2.0, 3.0) -> 5.0
Solución
¡Gracias por tus comentarios!
single