Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Challenge: Klassens Metoder | Grundlæggende OOP i C++
C++ OOP
Sektion 1. Kapitel 5
single

single

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

1234
class Example { public: void Method(); };

Det er ikke obligatorisk at oprette to separate filer til dette formål; du kan gøre det i én enkelt fil, og i visse situationer viser det sig at være fordelagtigt.

main.cpp

main.cpp

12345678
#include <iostream> class Example { public: void Method(); }; void Example::Method() { std::cout << "Method was called" << std::endl; }

En god 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:
    • Beregn rabatbeløbet i parentes ved hjælp af formlen (price * discount / 100)
    • Træk rabatbeløbet fra price for at få den endelige pris efter rabat

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

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

some-alt