Herausforderung: Konstruktor und Attribute
Eine der Hauptanwendungen von Konstruktoren ist die Initialisierung von Attributen der Klasse. Ein Standardkonstruktor kann beispielsweise verwendet werden, um Anfangswerte festzulegen. Zum Beispiel:
main.cpp
1234567891011121314#include <iostream> class Person { public: Person() { name = "undefined"; } std::string name; }; int main() { Person person; std::cout << person.name; }
Wenn kein Wert für das Namensattribut des Objekts angegeben wird, wird es standardmäßig auf underfined gesetzt. Sie können versuchen, diesen Konstruktor zu entfernen, um zu sehen, welche Änderungen auftreten.
Initialisieren von Attributen mit dem Konstruktor
Wie Funktionen können Konstruktoren Parameter akzeptieren, wodurch unterschiedliche Argumente bei der Objekterstellung möglich sind. Sie können diese auch überladen, um verschiedene Anzahlen von Argumenten zu verarbeiten.
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
Stellen Sie sich vor, Sie entwickeln ein einfaches Kartierungssystem. Sie sollen eine Klasse Location erstellen, die einen Punkt auf einer Karte mit einem Namen und Koordinaten repräsentiert. Ihre Aufgabe ist es, einen Konstruktor sowie eine Methode zur Berechnung der Entfernung zu einem anderen Ort zu implementieren.
- Implementierung eines Konstruktors, der alle drei Felder initialisiert:
- Der Konstruktor soll drei Parameter entgegennehmen: einen
std::stringfür den Namen sowie zweidouble-Werte für die x- und y-Koordinaten. - Weisen Sie im Konstruktor den Parameter für den Namen dem Feld
namedes Objekts zu. - Weisen Sie den Parameter für die x-Koordinate dem Feld
xdes Objekts zu. - Weisen Sie den Parameter für die y-Koordinate dem Feld
ydes Objekts zu.
- Der Konstruktor soll drei Parameter entgegennehmen: einen
- Implementieren Sie eine Methode
distanceTo, die ein weiteresLocation-Objekt als Parameter erhält:- Greifen Sie auf die
x- undy-Koordinaten sowohl des aktuellen Objekts als auch des anderen Objekts zu. - Berechnen Sie die Differenz der
x-Koordinaten:other.x - x. - Berechnen Sie die Differenz der
y-Koordinaten:other.y - y. - Ermitteln Sie die Entfernung mit der Formel:
sqrt(dx * dx + dy * dy). - Geben Sie die berechnete Entfernung als
doublezurück.
- Greifen Sie auf die
Beispiel
Location("Home", 0.0, 0.0) und Location("Office", 3.0, 4.0) -> 5.0
Location("Park", 1.0, 2.0) und Location("School", 4.0, 6.0) -> 5.0
Location("Cafe", -1.0, -1.0) und Location("Library", 2.0, 3.0) -> 5.0
Lösung
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
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?
Awesome!
Completion rate improved to 3.13
Herausforderung: Konstruktor und Attribute
Swipe um das Menü anzuzeigen
Eine der Hauptanwendungen von Konstruktoren ist die Initialisierung von Attributen der Klasse. Ein Standardkonstruktor kann beispielsweise verwendet werden, um Anfangswerte festzulegen. Zum Beispiel:
main.cpp
1234567891011121314#include <iostream> class Person { public: Person() { name = "undefined"; } std::string name; }; int main() { Person person; std::cout << person.name; }
Wenn kein Wert für das Namensattribut des Objekts angegeben wird, wird es standardmäßig auf underfined gesetzt. Sie können versuchen, diesen Konstruktor zu entfernen, um zu sehen, welche Änderungen auftreten.
Initialisieren von Attributen mit dem Konstruktor
Wie Funktionen können Konstruktoren Parameter akzeptieren, wodurch unterschiedliche Argumente bei der Objekterstellung möglich sind. Sie können diese auch überladen, um verschiedene Anzahlen von Argumenten zu verarbeiten.
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
Stellen Sie sich vor, Sie entwickeln ein einfaches Kartierungssystem. Sie sollen eine Klasse Location erstellen, die einen Punkt auf einer Karte mit einem Namen und Koordinaten repräsentiert. Ihre Aufgabe ist es, einen Konstruktor sowie eine Methode zur Berechnung der Entfernung zu einem anderen Ort zu implementieren.
- Implementierung eines Konstruktors, der alle drei Felder initialisiert:
- Der Konstruktor soll drei Parameter entgegennehmen: einen
std::stringfür den Namen sowie zweidouble-Werte für die x- und y-Koordinaten. - Weisen Sie im Konstruktor den Parameter für den Namen dem Feld
namedes Objekts zu. - Weisen Sie den Parameter für die x-Koordinate dem Feld
xdes Objekts zu. - Weisen Sie den Parameter für die y-Koordinate dem Feld
ydes Objekts zu.
- Der Konstruktor soll drei Parameter entgegennehmen: einen
- Implementieren Sie eine Methode
distanceTo, die ein weiteresLocation-Objekt als Parameter erhält:- Greifen Sie auf die
x- undy-Koordinaten sowohl des aktuellen Objekts als auch des anderen Objekts zu. - Berechnen Sie die Differenz der
x-Koordinaten:other.x - x. - Berechnen Sie die Differenz der
y-Koordinaten:other.y - y. - Ermitteln Sie die Entfernung mit der Formel:
sqrt(dx * dx + dy * dy). - Geben Sie die berechnete Entfernung als
doublezurück.
- Greifen Sie auf die
Beispiel
Location("Home", 0.0, 0.0) und Location("Office", 3.0, 4.0) -> 5.0
Location("Park", 1.0, 2.0) und Location("School", 4.0, 6.0) -> 5.0
Location("Cafe", -1.0, -1.0) und Location("Library", 2.0, 3.0) -> 5.0
Lösung
Danke für Ihr Feedback!
single