Desafio: 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
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
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
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.
- Implemente um construtor que inicialize todos os três campos:
- O construtor deve receber três parâmetros: um
std::stringpara o nome e dois valoresdoublepara as coordenadas x e y. - Dentro do construtor, atribua o parâmetro do nome ao campo
namedo objeto. - Atribua o parâmetro da coordenada x ao campo
xdo objeto. - Atribua o parâmetro da coordenada y ao campo
ydo objeto.
- O construtor deve receber três parâmetros: um
- Implemente um método
distanceToque recebe outro objetoLocationcomo parâmetro:- Acesse as coordenadas
xeytanto 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.
- Acesse as coordenadas
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
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
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?
Incrível!
Completion taxa melhorada para 3.13
Desafio: 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
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
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
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.
- Implemente um construtor que inicialize todos os três campos:
- O construtor deve receber três parâmetros: um
std::stringpara o nome e dois valoresdoublepara as coordenadas x e y. - Dentro do construtor, atribua o parâmetro do nome ao campo
namedo objeto. - Atribua o parâmetro da coordenada x ao campo
xdo objeto. - Atribua o parâmetro da coordenada y ao campo
ydo objeto.
- O construtor deve receber três parâmetros: um
- Implemente um método
distanceToque recebe outro objetoLocationcomo parâmetro:- Acesse as coordenadas
xeytanto 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.
- Acesse as coordenadas
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
Obrigado pelo seu feedback!
single