Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Utmaning: Klassens Metoder | Grunderna i OOP i C++
C++ OOP

bookUtmaning: Klassens Metoder

Metoder i en klass är i grunden bara funktioner som definieras inom klassen. De används för att definiera de beteenden eller handlingar som objekt av klassen kan utföra.

Metoder manipulerar ofta attributen i klassen eller utför operationer som är relevanta för objekten.

Implementering av metoder utanför klassen

Metoder kan definieras utanför class-deklarationen med hjälp av scope resolution operator (::). Detta görs ofta för att separera deklarationen i header-filen från dess implementation i källfilen. Så här gör du:

Example.h

Example.h

Example.cpp

Example.cpp

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

Det är inte obligatoriskt att skapa två separata filer för detta ändamål; det kan uppnås inom en enda fil, och i vissa situationer visar det sig vara fördelaktigt.

main.cpp

main.cpp

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

Känn dig fri att lösa uppgiften med den metod du föredrar. Men en god praxis är att separera deklaration och implementation.

Uppgift

Swipe to start coding

Föreställ dig att du bygger ett enkelt system för att beräkna priset på en produkt med en tillämpad rabatt. Systemet ska även upprätthålla en särskild regel: ingen rabatt får överstiga 50 %, även om ett högre värde anges.

Du har en klass Product med följande fält:

  • price av typen float
  • discount av typen float

Du behöver implementera en metod getFinalPrice() som:

  1. Kontrollerar rabattvärdet: om det är större än 50 %, sätt det till 50 %.
  2. Beräknar det slutliga priset och returnerar det:
    • Inom parentes, beräkna rabattbeloppet med formeln (price * discount / 100)
    • Subtrahera rabattbeloppet från price för att få slutpriset efter rabatt

Exempel

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 allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 5
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

bookUtmaning: Klassens Metoder

Svep för att visa menyn

Metoder i en klass är i grunden bara funktioner som definieras inom klassen. De används för att definiera de beteenden eller handlingar som objekt av klassen kan utföra.

Metoder manipulerar ofta attributen i klassen eller utför operationer som är relevanta för objekten.

Implementering av metoder utanför klassen

Metoder kan definieras utanför class-deklarationen med hjälp av scope resolution operator (::). Detta görs ofta för att separera deklarationen i header-filen från dess implementation i källfilen. Så här gör du:

Example.h

Example.h

Example.cpp

Example.cpp

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

Det är inte obligatoriskt att skapa två separata filer för detta ändamål; det kan uppnås inom en enda fil, och i vissa situationer visar det sig vara fördelaktigt.

main.cpp

main.cpp

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

Känn dig fri att lösa uppgiften med den metod du föredrar. Men en god praxis är att separera deklaration och implementation.

Uppgift

Swipe to start coding

Föreställ dig att du bygger ett enkelt system för att beräkna priset på en produkt med en tillämpad rabatt. Systemet ska även upprätthålla en särskild regel: ingen rabatt får överstiga 50 %, även om ett högre värde anges.

Du har en klass Product med följande fält:

  • price av typen float
  • discount av typen float

Du behöver implementera en metod getFinalPrice() som:

  1. Kontrollerar rabattvärdet: om det är större än 50 %, sätt det till 50 %.
  2. Beräknar det slutliga priset och returnerar det:
    • Inom parentes, beräkna rabattbeloppet med formeln (price * discount / 100)
    • Subtrahera rabattbeloppet från price för att få slutpriset efter rabatt

Exempel

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 desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 5
single

single

some-alt