Uitdaging: Constructor en Attributen
Een van de belangrijkste toepassingen van constructors is het initialiseren van attributen van de klasse. Een standaardconstructor kan bijvoorbeeld worden gebruikt om beginwaarden in te stellen. Bijvoorbeeld:
main.cpp
1234567891011121314#include <iostream> class Person { public: Person() { name = "undefined"; } std::string name; }; int main() { Person person; std::cout << person.name; }
Als je geen waarde opgeeft voor het name-attribuut van het object, wordt deze standaard ingesteld op underfined. Je kunt proberen deze constructor te verwijderen om te zien welke wijzigingen optreden.
Attributen initialiseren met constructor
Net als functies kunnen constructors parameters accepteren, waardoor verschillende argumenten mogelijk zijn bij het aanmaken van een object. Je kunt ze ook overbelasten om verschillende aantallen argumenten te verwerken.
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
Stel je voor dat je een eenvoudig kaartsysteem bouwt. Je moet een Location-klasse maken die een punt op een kaart weergeeft met een naam en coördinaten. Je opdracht is om een constructor te implementeren en een methode om de afstand tot een andere locatie te berekenen.
- Implementeer een constructor die alle drie de velden initialiseert:
- De constructor moet drie parameters accepteren: een
std::stringvoor de naam en tweedouble-waarden voor de x- en y-coördinaten. - Wijs binnen de constructor de parameter voor de naam toe aan het
name-veld van het object. - Wijs de parameter voor de x-coördinaat toe aan het
x-veld van het object. - Wijs de parameter voor de y-coördinaat toe aan het
y-veld van het object.
- De constructor moet drie parameters accepteren: een
- Implementeer een methode
distanceTodie een anderLocation-object als parameter neemt:- Benader de
x- eny-coördinaten van zowel het huidige object als het andere object. - Bereken het verschil in de
x-coördinaten:other.x - x. - Bereken het verschil in de
y-coördinaten:other.y - y. - Bereken de afstand met de formule:
sqrt(dx * dx + dy * dy). - Retourneer de berekende afstand als een
double.
- Benader de
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
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 3.13
Uitdaging: Constructor en Attributen
Veeg om het menu te tonen
Een van de belangrijkste toepassingen van constructors is het initialiseren van attributen van de klasse. Een standaardconstructor kan bijvoorbeeld worden gebruikt om beginwaarden in te stellen. Bijvoorbeeld:
main.cpp
1234567891011121314#include <iostream> class Person { public: Person() { name = "undefined"; } std::string name; }; int main() { Person person; std::cout << person.name; }
Als je geen waarde opgeeft voor het name-attribuut van het object, wordt deze standaard ingesteld op underfined. Je kunt proberen deze constructor te verwijderen om te zien welke wijzigingen optreden.
Attributen initialiseren met constructor
Net als functies kunnen constructors parameters accepteren, waardoor verschillende argumenten mogelijk zijn bij het aanmaken van een object. Je kunt ze ook overbelasten om verschillende aantallen argumenten te verwerken.
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
Stel je voor dat je een eenvoudig kaartsysteem bouwt. Je moet een Location-klasse maken die een punt op een kaart weergeeft met een naam en coördinaten. Je opdracht is om een constructor te implementeren en een methode om de afstand tot een andere locatie te berekenen.
- Implementeer een constructor die alle drie de velden initialiseert:
- De constructor moet drie parameters accepteren: een
std::stringvoor de naam en tweedouble-waarden voor de x- en y-coördinaten. - Wijs binnen de constructor de parameter voor de naam toe aan het
name-veld van het object. - Wijs de parameter voor de x-coördinaat toe aan het
x-veld van het object. - Wijs de parameter voor de y-coördinaat toe aan het
y-veld van het object.
- De constructor moet drie parameters accepteren: een
- Implementeer een methode
distanceTodie een anderLocation-object als parameter neemt:- Benader de
x- eny-coördinaten van zowel het huidige object als het andere object. - Bereken het verschil in de
x-coördinaten:other.x - x. - Bereken het verschil in de
y-coördinaten:other.y - y. - Bereken de afstand met de formule:
sqrt(dx * dx + dy * dy). - Retourneer de berekende afstand als een
double.
- Benader de
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
Oplossing
Bedankt voor je feedback!
single