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

bookUtfordring: Klassens Metoder

Metoder i en klasse er i hovedsak bare funksjoner som er definert innenfor klassen. De brukes til å definere atferden eller handlingene som objekter av klassen kan utføre.

Metoder manipulerer ofte attributtene til klassen eller utfører operasjoner som er relevante for objektene.

Implementering av metoder utenfor klassen

Metoder kan defineres utenfor class-deklarasjonen ved å bruke scope resolution operator (::). Dette gjøres ofte for å skille deklarasjonen i header-filen fra implementeringen i kildefilen. Slik gjør du det:

Example.h

Example.h

Example.cpp

Example.cpp

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

Det er ikke obligatorisk å opprette to separate filer for dette formålet; du kan oppnå det i én enkelt fil, og i visse situasjoner viser det seg å være fordelaktig.

main.cpp

main.cpp

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

Du kan løse oppgaven med metoden du foretrekker. En god praksis er imidlertid å skille mellom deklarasjon og implementasjon.

Oppgave

Swipe to start coding

Tenk deg at du skal lage et enkelt system for å beregne prisen på et produkt med en rabatt anvendt. Systemet skal også håndheve en spesiell regel: ingen rabatt kan overstige 50 %, selv om en høyere verdi oppgis.

Du har en klasse Product med følgende felt:

  • price av typen float
  • discount av typen float

Du skal implementere en metode getFinalPrice() som:

  1. Sjekker rabattverdien: hvis den er større enn 50 %, settes den til 50 %.
  2. Beregner sluttprisen og returnerer den:
    • Inne i parentesene, beregn rabattbeløpet ved å bruke formelen (price * discount / 100)
    • Trekk rabattbeløpet fra price for å få sluttprisen etter rabatt

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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 5
single

single

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

Can you explain what the scope resolution operator does?

Why is it considered good practice to separate declaration and implementation?

Can you give an example of defining a method outside the class?

close

bookUtfordring: Klassens Metoder

Sveip for å vise menyen

Metoder i en klasse er i hovedsak bare funksjoner som er definert innenfor klassen. De brukes til å definere atferden eller handlingene som objekter av klassen kan utføre.

Metoder manipulerer ofte attributtene til klassen eller utfører operasjoner som er relevante for objektene.

Implementering av metoder utenfor klassen

Metoder kan defineres utenfor class-deklarasjonen ved å bruke scope resolution operator (::). Dette gjøres ofte for å skille deklarasjonen i header-filen fra implementeringen i kildefilen. Slik gjør du det:

Example.h

Example.h

Example.cpp

Example.cpp

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

Det er ikke obligatorisk å opprette to separate filer for dette formålet; du kan oppnå det i én enkelt fil, og i visse situasjoner viser det seg å være fordelaktig.

main.cpp

main.cpp

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

Du kan løse oppgaven med metoden du foretrekker. En god praksis er imidlertid å skille mellom deklarasjon og implementasjon.

Oppgave

Swipe to start coding

Tenk deg at du skal lage et enkelt system for å beregne prisen på et produkt med en rabatt anvendt. Systemet skal også håndheve en spesiell regel: ingen rabatt kan overstige 50 %, selv om en høyere verdi oppgis.

Du har en klasse Product med følgende felt:

  • price av typen float
  • discount av typen float

Du skal implementere en metode getFinalPrice() som:

  1. Sjekker rabattverdien: hvis den er større enn 50 %, settes den til 50 %.
  2. Beregner sluttprisen og returnerer den:
    • Inne i parentesene, beregn rabattbeløpet ved å bruke formelen (price * discount / 100)
    • Trekk rabattbeløpet fra price for å få sluttprisen etter rabatt

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 desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 5
single

single

some-alt