Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Udfordring: Klassens Metoder | Grundlæggende OOP i C++
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
C++ OOP

bookUdfordring: 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.h

Example.cpp

Example.cpp

copy
1234
class 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

main.cpp

copy
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.

Opgave

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:

  • price af typen float
  • discount af typen float

Du skal implementere en metode getFinalPrice(), der:

  1. Kontrollerer rabatværdien: hvis den er større end 50 %, sættes den til 50 %.
  2. 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 price for at få den endelige pris efter rabat

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

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 5
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

close

bookUdfordring: 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.h

Example.cpp

Example.cpp

copy
1234
class 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

main.cpp

copy
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.

Opgave

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:

  • price af typen float
  • discount af typen float

Du skal implementere en metode getFinalPrice(), der:

  1. Kontrollerer rabatværdien: hvis den er større end 50 %, sættes den til 50 %.
  2. 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 price for at få den endelige pris efter rabat

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

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 5
single

single

some-alt