Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Herausforderung: Konstruktor und Attribute | Konstruktoren und Destruktoren
C++ OOP

bookHerausforderung: 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

main.cpp

copy
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

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

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.

  1. Implementierung eines Konstruktors, der alle drei Felder initialisiert:
    • Der Konstruktor soll drei Parameter entgegennehmen: einen std::string für den Namen sowie zwei double-Werte für die x- und y-Koordinaten.
    • Weisen Sie im Konstruktor den Parameter für den Namen dem Feld name des Objekts zu.
    • Weisen Sie den Parameter für die x-Koordinate dem Feld x des Objekts zu.
    • Weisen Sie den Parameter für die y-Koordinate dem Feld y des Objekts zu.
  2. Implementieren Sie eine Methode distanceTo, die ein weiteres Location-Objekt als Parameter erhält:
    • Greifen Sie auf die x- und y-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 double zurück.

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

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 2
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

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

bookHerausforderung: 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

main.cpp

copy
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

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

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.

  1. Implementierung eines Konstruktors, der alle drei Felder initialisiert:
    • Der Konstruktor soll drei Parameter entgegennehmen: einen std::string für den Namen sowie zwei double-Werte für die x- und y-Koordinaten.
    • Weisen Sie im Konstruktor den Parameter für den Namen dem Feld name des Objekts zu.
    • Weisen Sie den Parameter für die x-Koordinate dem Feld x des Objekts zu.
    • Weisen Sie den Parameter für die y-Koordinate dem Feld y des Objekts zu.
  2. Implementieren Sie eine Methode distanceTo, die ein weiteres Location-Objekt als Parameter erhält:
    • Greifen Sie auf die x- und y-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 double zurück.

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

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 2
single

single

some-alt