Udfordring: Klassens Metoder
Metoder i en klasse er i bund og grund bare funktioner, der er defineret inden for klassen. De bruges til at definere de handlinger eller adfærd, som objekter af klassen kan udføre.
Metoder manipulerer ofte attributterne i klassen eller udfører operationer, der er relevante for objekterne.
Implementering af metoder uden for klassen
Metoder kan defineres uden for class-deklarationen ved hjælp af scope resolution operatoren (::). Dette gøres ofte for at adskille deklarationen i header-filen fra implementeringen i kildefilen. Sådan gør du:
Example.h
Example.cpp
1234class Example { public: void Method(); };
Det er ikke obligatorisk at oprette to separate filer til dette formål; du kan opnå det i en enkelt fil, og i visse situationer viser det sig at være fordelagtigt.
main.cpp
12345678#include <iostream> class Example { public: void Method(); }; void Example::Method() { std::cout << "Method was called" << std::endl; }
Du er velkommen til at løse opgaven ved hjælp af den metode, du foretrækker. Men den gængse gode praksis er at adskille deklaration og implementering.
Swipe to start coding
Forestil dig, at du bygger et simpelt system til at beregne prisen på et produkt med en anvendt rabat. Systemet skal også håndhæve en særlig regel: ingen rabat må overstige 50 %, selv hvis der angives en højere værdi.
Du har en klasse Product med følgende felter:
priceaf typenfloatdiscountaf typenfloat
Du skal implementere en metode getFinalPrice(), der:
- Kontrollerer rabatværdien: hvis den er større end 50 %, sættes den til 50 %.
- Beregner den endelige pris og returnerer den:
- Inden for parentes beregnes rabatbeløbet ved hjælp af formlen
(price * discount / 100) - Træk rabatbeløbet fra
pricefor at få den endelige pris efter rabat
- Inden for parentes beregnes rabatbeløbet ved hjælp af formlen
Eksempel
price = 100.0, discount = 60.0 -> 50.0
price = 80.0, discount = 30.0 -> 56.0
price = 50.0, discount = 20.0 -> 40.0
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Fantastisk!
Completion rate forbedret til 3.13
Udfordring: Klassens Metoder
Stryg for at vise menuen
Metoder i en klasse er i bund og grund bare funktioner, der er defineret inden for klassen. De bruges til at definere de handlinger eller adfærd, som objekter af klassen kan udføre.
Metoder manipulerer ofte attributterne i klassen eller udfører operationer, der er relevante for objekterne.
Implementering af metoder uden for klassen
Metoder kan defineres uden for class-deklarationen ved hjælp af scope resolution operatoren (::). Dette gøres ofte for at adskille deklarationen i header-filen fra implementeringen i kildefilen. Sådan gør du:
Example.h
Example.cpp
1234class Example { public: void Method(); };
Det er ikke obligatorisk at oprette to separate filer til dette formål; du kan opnå det i en enkelt fil, og i visse situationer viser det sig at være fordelagtigt.
main.cpp
12345678#include <iostream> class Example { public: void Method(); }; void Example::Method() { std::cout << "Method was called" << std::endl; }
Du er velkommen til at løse opgaven ved hjælp af den metode, du foretrækker. Men den gængse gode praksis er at adskille deklaration og implementering.
Swipe to start coding
Forestil dig, at du bygger et simpelt system til at beregne prisen på et produkt med en anvendt rabat. Systemet skal også håndhæve en særlig regel: ingen rabat må overstige 50 %, selv hvis der angives en højere værdi.
Du har en klasse Product med følgende felter:
priceaf typenfloatdiscountaf typenfloat
Du skal implementere en metode getFinalPrice(), der:
- Kontrollerer rabatværdien: hvis den er større end 50 %, sættes den til 50 %.
- Beregner den endelige pris og returnerer den:
- Inden for parentes beregnes rabatbeløbet ved hjælp af formlen
(price * discount / 100) - Træk rabatbeløbet fra
pricefor at få den endelige pris efter rabat
- Inden for parentes beregnes rabatbeløbet ved hjælp af formlen
Eksempel
price = 100.0, discount = 60.0 -> 50.0
price = 80.0, discount = 30.0 -> 56.0
price = 50.0, discount = 20.0 -> 40.0
Løsning
Tak for dine kommentarer!
single