Utfordring: Konstruktør og Attributter
En av hovedbruksområdene for konstruktører er å initialisere attributter til klassen. En standardkonstruktør kan for eksempel brukes til å sette startverdier. For eksempel:
main.cpp
1234567891011121314#include <iostream> class Person { public: Person() { name = "undefined"; } std::string name; }; int main() { Person person; std::cout << person.name; }
Hvis du ikke angir verdi for name-attributtet til objektet, vil det bli satt til underfined som standard. Du kan prøve å fjerne denne konstruktøren for å se hvilke endringer som oppstår.
Initialisering av attributter med konstruktør
Akkurat som funksjoner kan konstruktører ta parametere, noe som tillater ulike argumenter ved opprettelse av objekter. Du kan også overbelaste dem for å håndtere varierende antall argumenter.
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
Tenk deg at du skal bygge et enkelt kartleggingssystem. Du må opprette en Location-klasse som representerer et punkt på et kart med et navn og koordinater. Oppgaven din er å implementere en konstruktør og en metode for å beregne avstanden til en annen lokasjon.
- Implementer en konstruktør som initialiserer alle tre feltene:
- Konstruktøren skal ta tre parametere: en
std::stringfor navnet, og todouble-verdier for x- og y-koordinatene. - Inne i konstruktøren skal parameteren for navnet tilordnes objektets
name-felt. - Parameteren for x-koordinaten skal tilordnes objektets
x-felt. - Parameteren for y-koordinaten skal tilordnes objektets
y-felt.
- Konstruktøren skal ta tre parametere: en
- Implementer en metode
distanceTosom tar et annetLocation-objekt som parameter:- Få tilgang til
x- ogy-koordinatene til både det nåværende objektet og det andre objektet. - Beregn forskjellen i
x-koordinatene:other.x - x. - Beregn forskjellen i
y-koordinatene:other.y - y. - Beregn avstanden ved å bruke formelen:
sqrt(dx * dx + dy * dy). - Returner den beregnede avstanden som en
double.
- Få tilgang til
Eksempel
Location("Home", 0.0, 0.0) og Location("Office", 3.0, 4.0) -> 5.0
Location("Park", 1.0, 2.0) og Location("School", 4.0, 6.0) -> 5.0
Location("Cafe", -1.0, -1.0) og Location("Library", 2.0, 3.0) -> 5.0
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Utfordring: Konstruktør og Attributter
Sveip for å vise menyen
En av hovedbruksområdene for konstruktører er å initialisere attributter til klassen. En standardkonstruktør kan for eksempel brukes til å sette startverdier. For eksempel:
main.cpp
1234567891011121314#include <iostream> class Person { public: Person() { name = "undefined"; } std::string name; }; int main() { Person person; std::cout << person.name; }
Hvis du ikke angir verdi for name-attributtet til objektet, vil det bli satt til underfined som standard. Du kan prøve å fjerne denne konstruktøren for å se hvilke endringer som oppstår.
Initialisering av attributter med konstruktør
Akkurat som funksjoner kan konstruktører ta parametere, noe som tillater ulike argumenter ved opprettelse av objekter. Du kan også overbelaste dem for å håndtere varierende antall argumenter.
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
Tenk deg at du skal bygge et enkelt kartleggingssystem. Du må opprette en Location-klasse som representerer et punkt på et kart med et navn og koordinater. Oppgaven din er å implementere en konstruktør og en metode for å beregne avstanden til en annen lokasjon.
- Implementer en konstruktør som initialiserer alle tre feltene:
- Konstruktøren skal ta tre parametere: en
std::stringfor navnet, og todouble-verdier for x- og y-koordinatene. - Inne i konstruktøren skal parameteren for navnet tilordnes objektets
name-felt. - Parameteren for x-koordinaten skal tilordnes objektets
x-felt. - Parameteren for y-koordinaten skal tilordnes objektets
y-felt.
- Konstruktøren skal ta tre parametere: en
- Implementer en metode
distanceTosom tar et annetLocation-objekt som parameter:- Få tilgang til
x- ogy-koordinatene til både det nåværende objektet og det andre objektet. - Beregn forskjellen i
x-koordinatene:other.x - x. - Beregn forskjellen i
y-koordinatene:other.y - y. - Beregn avstanden ved å bruke formelen:
sqrt(dx * dx + dy * dy). - Returner den beregnede avstanden som en
double.
- Få tilgang til
Eksempel
Location("Home", 0.0, 0.0) og Location("Office", 3.0, 4.0) -> 5.0
Location("Park", 1.0, 2.0) og Location("School", 4.0, 6.0) -> 5.0
Location("Cafe", -1.0, -1.0) og Location("Library", 2.0, 3.0) -> 5.0
Løsning
Takk for tilbakemeldingene dine!
single