Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Desafío: Constructor y Atributos | Constructores y Destructores
POO en C++

bookDesafí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

main.cpp

copy
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

main.cpp

copy
123456789101112131415161718
class 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); }
Tarea

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.

  1. Implementar un constructor que inicialice los tres campos:
    • El constructor debe recibir tres parámetros: un std::string para el nombre y dos valores double para las coordenadas x e y.
    • Dentro del constructor, asigna el parámetro del nombre al campo name del objeto.
    • Asigna el parámetro de la coordenada x al campo x del objeto.
    • Asigna el parámetro de la coordenada y al campo y del objeto.
  2. Implementar un método distanceTo que reciba otro objeto Location como parámetro:
    • Accede a las coordenadas x e y tanto 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.

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

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 2
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

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?

close

bookDesafí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

main.cpp

copy
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

main.cpp

copy
123456789101112131415161718
class 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); }
Tarea

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.

  1. Implementar un constructor que inicialice los tres campos:
    • El constructor debe recibir tres parámetros: un std::string para el nombre y dos valores double para las coordenadas x e y.
    • Dentro del constructor, asigna el parámetro del nombre al campo name del objeto.
    • Asigna el parámetro de la coordenada x al campo x del objeto.
    • Asigna el parámetro de la coordenada y al campo y del objeto.
  2. Implementar un método distanceTo que reciba otro objeto Location como parámetro:
    • Accede a las coordenadas x e y tanto 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.

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

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 2
single

single

some-alt