Methoden (Elementfunktionen)
Teil des Abschnitts Objektorientierte Programmierung der C++-Journey von Coddy — Lektion 8 von 104.
Elementfunktionen definieren, was ein Objekt tun kann. Sie haben einen Rückgabetyp, einen Namen und optionale Parameter.
Methode, die einen Wert zurückgibt
class Calculator {
public:
int add(int a, int b) {
return a + b;
}
};Void-Methode (kein Rückgabewert)
class Printer {
public:
void printMessage(std::string msg) {
std::cout << msg << std::endl;
}
};Methode, die bool zurückgibt
class Checker {
public:
bool isPositive(int num) {
return num > 0;
}
};Deklaration im Header, Implementierung in der Quelldatei
// Calculator.h
class Calculator {
public:
int add(int a, int b);
};
// Calculator.cpp
int Calculator::add(int a, int b) {
return a + b;
}Der Rückgabetyp steht vor dem Methodennamen. Verwenden Sie void, wenn eine Methode nichts zurückgibt. Der :: Bereichsauflösungsoperator verknüpft Implementierungen mit ihrer Klasse.
Aufgabe
MittelImplementieren Sie vier Elementfunktionen für die Klasse StringHelper mit unterschiedlichen Rückgabetypen und Parametern:
getLength()— gibtintzurück, die Länge des TextestoUpperCase()— gibtstd::stringzurück, den Text in Großbuchstabencontains(std::string word)— gibtboolzurück, ob der Text das Wort enthältrepeat(int times)— gibtstd::stringzurück, den Text mit Leerzeichen wiederholt
Spickzettel
Elementfunktionen definieren, was ein Objekt tun kann. Sie haben einen Rückgabetyp, einen Namen und optionale Parameter.
Methode, die einen Wert zurückgibt:
class Calculator {
public:
int add(int a, int b) {
return a + b;
}
};Void-Methode (kein Rückgabewert):
class Printer {
public:
void printMessage(std::string msg) {
std::cout << msg << std::endl;
}
};Methode, die einen boolschen Wert zurückgibt:
class Checker {
public:
bool isPositive(int num) {
return num > 0;
}
};Deklaration im Header, Implementierung im Quellcode:
// Calculator.h
class Calculator {
public:
int add(int a, int b);
};
// Calculator.cpp
int Calculator::add(int a, int b) {
return a + b;
}Der Rückgabetyp steht vor dem Methodennamen. Verwenden Sie void, wenn eine Methode nichts zurückgibt. Der Bereichsauflösungsoperator :: verknüpft Implementierungen mit ihrer Klasse.
Probier es selbst
#include <iostream>
#include "StringHelper.h"
int main() {
std::string input;
std::getline(std::cin, input);
StringHelper helper;
helper.text = input;
std::cout << "Original: " << helper.text << std::endl;
std::cout << "Length: " << helper.getLength() << std::endl;
std::cout << "Uppercase: " << helper.toUpperCase() << std::endl;
std::cout << "Contains 'World': " << (helper.contains("World") ? "yes" : "no") << std::endl;
std::cout << "Repeated: " << helper.repeat(3) << std::endl;
return 0;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der OOP
Externe DateienC++ Build & KompilierungHeader-Dateien & QuelldateienNamensräume & GültigkeitsbereicheEinführung in OOP in C++Klassen vs. ObjekteDer 'this'-PointerMethoden (Elementfunktionen)Attribute (Datenelemente)Grundlagen zu Ctors & DtorsRückblick - Einfacher Taschenrechner4Klasseneigenschaften
Instanz- vs. statische MemberGetter und SetterConst-MemberfunktionenMutable-SchlüsselwortStatische Methoden und VariablenFriend-Funktionen & KlassenZusammenfassung - Bankkonto-Manager7Vererbung
Grundlagen der VererbungZugriffsstufen bei VererbungAufrufreihenfolge von Ctor & DtorÜberschreiben von MethodenVirtuelle Funktionen & VTableMehrfachvererbungVirtuelle VererbungRückblick - Mitarbeiter-Hierarchie2Speicherverwaltung
Stack vs. Heap SpeicherZeiger und ReferenzenDynamischer Speicher (new/delete)Smart Pointers in C++RAII in C++Rückblick – Dynamischer Array-Manager5Kapselung
Zugriffsspezifizierer in C++Zugriffsspezifizierer im DetailInformation HidingStruct vs. ClassVerschachtelte & innere KlassenRückblick - Studentenverwaltungssystem8Polymorphie
Kompilierzeit- vs. Laufzeit-PolymorphieFunktionsüberladungVirtuelle Funktionen – WiederholungRein virtuelle FunktionenAbstrakte KlassenInterface-Design in C++Dynamic Casting & RTTIZusammenfassung – Formen-Rechner3Konstruktoren & Destruktoren
StandardkonstruktorParametrisierter KonstruktorKopierkonstruktorVerschiebekonstruktorKonstruktor-InitialisierungslistenDelegierende KonstruktorenDestruktoren im DetailRule of Three / Five / ZeroZusammenfassung - String-Klasse6Operatorüberladung
Einführung in die OperatorüberladungArithmetische OperatorüberladungVergleichsoperatorüberladungStream-OperatorenZuweisungsoperatorüberladungÜberladen der [] und () OperatorenTypumwandlungsoperatorenRückblick - Matrix-Klasse9Templates
FunktionstemplatesKlassentemplatesTemplate-SpezialisierungVariadische TemplatesSFINAE & Type Traits GrundlagenRückblick - Generische Container