Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Desafio: Construtor e Atributos | Construtores e Destrutores
C++ Poo
Seção 2. Capítulo 2
single

single

bookDesafio: Construtor e Atributos

Deslize para mostrar o menu

Um dos principais usos dos construtores é inicializar atributos da classe. Um construtor padrão, por exemplo, pode ser utilizado para definir valores iniciais. Por exemplo:

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; }

Se nenhum valor for especificado para o atributo name do objeto, ele será definido como underfined por padrão. É possível remover este construtor para observar as alterações que ocorrem.

Inicializando Atributos com o Construtor

Assim como funções, construtores podem receber parâmetros, permitindo diferentes argumentos durante a criação do objeto. Também é possível sobrecarregá-los para lidar com quantidades variadas 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); }
Tarefa

Deslize para começar a programar

Imagine que você está desenvolvendo um sistema simples de mapeamento. Você precisa criar uma classe Location que representa um ponto em um mapa com um nome e coordenadas. Sua tarefa é implementar um construtor e um método para calcular a distância até outro local.

  1. Implemente um construtor que inicialize todos os três campos:
    • O construtor deve receber três parâmetros: um std::string para o nome e dois valores double para as coordenadas x e y.
    • Dentro do construtor, atribua o parâmetro do nome ao campo name do objeto.
    • Atribua o parâmetro da coordenada x ao campo x do objeto.
    • Atribua o parâmetro da coordenada y ao campo y do objeto.
  2. Implemente um método distanceTo que recebe outro objeto Location como parâmetro:
    • Acesse as coordenadas x e y tanto do objeto atual quanto do outro objeto.
    • Calcule a diferença nas coordenadas x: other.x - x.
    • Calcule a diferença nas coordenadas y: other.y - y.
    • Calcule a distância usando a fórmula: sqrt(dx * dx + dy * dy).
    • Retorne a distância calculada como um double.

Exemplo

Location("Home", 0.0, 0.0) e Location("Office", 3.0, 4.0) -> 5.0
Location("Park", 1.0, 2.0) e Location("School", 4.0, 6.0) -> 5.0
Location("Cafe", -1.0, -1.0) e Location("Library", 2.0, 3.0) -> 5.0

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 2
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

some-alt