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
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
C++ Poo

bookDesafio: Construtor e Atributos

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

Swipe to start coding

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

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

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

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

Swipe to start coding

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

some-alt