Metotlar (Üye Fonksiyonlar)
Coddy'nin C++ Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 8 / 104.
Üye fonksiyonlar, bir nesnenin neler yapabileceğini tanımlar. Bir dönüş türüne, bir isme ve isteğe bağlı parametrelere sahiptirler.
Bir değer döndüren metot
class Calculator {
public:
int add(int a, int b) {
return a + b;
}
};Void metot (geri dönüş değeri yok)
class Printer {
public:
void printMessage(std::string msg) {
std::cout << msg << std::endl;
}
};bool döndüren metot
class Checker {
public:
bool isPositive(int num) {
return num > 0;
}
};Başlık dosyasında bildirme, kaynak dosyasında uygulama
// Calculator.h
class Calculator {
public:
int add(int a, int b);
};
// Calculator.cpp
int Calculator::add(int a, int b) {
return a + b;
}Dönüş türü, metot adından önce gelir. Bir metot herhangi bir şey döndürmediğinde void kullanın. :: kapsam çözümleme operatörü, uygulamaları sınıflarına bağlar.
Görev
OrtaStringHelper sınıfı için farklı dönüş türlerine ve parametrelere sahip dört üye fonksiyonu uygulayın:
getLength()— metnin uzunluğunuintolarak döndürürtoUpperCase()— metnin büyük harfli halinistd::stringolarak döndürürcontains(std::string word)— metnin kelimeyi içerip içermediğiniboololarak döndürürrepeat(int times)— metnin aralarında boşluklarla tekrarlanmış halinistd::stringolarak döndürür
Kopya kağıdı
Üye fonksiyonlar bir nesnenin neler yapabileceğini tanımlar. Bir dönüş türüne, bir isme ve isteğe bağlı parametrelere sahiptirler.
Değer döndüren metot:
class Calculator {
public:
int add(int a, int b) {
return a + b;
}
};Void metot (dönüş değeri olmayan):
class Printer {
public:
void printMessage(std::string msg) {
std::cout << msg << std::endl;
}
};Bool döndüren metot:
class Checker {
public:
bool isPositive(int num) {
return num > 0;
}
};Header dosyasında bildirme, kaynak dosyasında uygulama:
// Calculator.h
class Calculator {
public:
int add(int a, int b);
};
// Calculator.cpp
int Calculator::add(int a, int b) {
return a + b;
}Dönüş türü metot isminden önce gelir. Bir metot herhangi bir şey döndürmediğinde void kullanın. :: kapsam çözünürlük operatörü (scope resolution operator), uygulamaları sınıflarına bağlar.
Kendin dene
#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;
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Nesne Yönelimli Programlama bölümündeki tüm dersler
1OOP Temelleri
Harici DosyalarC++ Build ve DerlemeBaşlık Dosyaları ve Kaynak DosyalarıAd Alanları ve KapsamC++'ta OOP'ye GirişSınıflar ve Nesneler'this' İşaretçisiMetotlar (Üye Fonksiyonlar)Öznitelikler (Veri Üyeleri)Ctor ve Dtor TemelleriÖzet - Basit Hesap Makinesi4Sınıf Özellikleri
Örnek ve Statik ÜyelerGetter ve Setter MetotlarıConst Üye FonksiyonlarMutable Anahtar KelimesiStatik Metotlar ve DeğişkenlerFriend Fonksiyonlar ve SınıflarÖzet - Banka Hesabı Yöneticisi7Kalıtım
Temel KalıtımKalıtım Erişim SeviyeleriCtor ve Dtor Çağrılma SırasıMetot Geçersiz KılmaSanal Fonksiyonlar ve VTableÇoklu KalıtımSanal KalıtımÖzet - Çalışan Hiyerarşisi10STL Genel Bakış
STL Genel Bakış ve FelsefesiSTL KonteynerleriİteratörlerSTL AlgoritmalarıFunctor'lar ve Lambda İfadeleriÖzet - Kelime Frekansı13Tasarım Kalıpları 1. Bölüm
Tasarım Kalıplarına GirişSingleton KalıbıFactory ve Abstract FactoryBuilder KalıbıObserver KalıbıStrategy Kalıbı2Bellek Yönetimi
Stack ve Heap Bellekİşaretçiler ve ReferanslarDinamik Bellek (new/delete)C++'ta Akıllı İşaretçilerC++'ta RAIIÖzet - Dinamik Dizi Yöneticisi5Kapsülleme
C++'da Erişim BelirleyicilerDerinlemesine Erişim BelirleyicilerBilgi GizlemeStruct vs Classİç İçe ve Dahili SınıflarÖzet - Öğrenci Kayıt Sistemi8Çok Biçimlilik
Derleme ve Çalışma Zamanı Çok BiçimliliğiFonksiyon Aşırı YüklemeSanal Fonksiyonlara Yeniden BakışSaf Sanal FonksiyonlarSoyut SınıflarC++'ta Arayüz TasarımıDynamic Casting ve RTTIÖzet - Şekil Hesaplayıcı3Yapıcılar ve Yıkıcılar
Varsayılan YapıcıParametreli YapıcıKopya YapıcıTaşıma YapıcısıYapıcı İlklendirme ListeleriTemsilci YapıcılarYıkıcılara Derinlemesine BakışÜç / Beş / Sıfır KuralıÖzet - String Sınıfı6Operatör Aşırı Yükleme
Operatör Aşırı Yüklemeye GirişAritmetik Operatör Aşırı YüklemeKarşılaştırma Operatörü Aşırı YüklemeStream OperatörleriAtama Operatörü Aşırı Yükleme[] ve () Operatör Aşırı YüklemeTip Dönüşüm OperatörleriÖzet - Matris Sınıfı9Şablonlar
Fonksiyon ŞablonlarıSınıf ŞablonlarıŞablon ÖzelleştirmeVariadic ŞablonlarSFINAE ve Type Traits TemelleriÖzet - Generic Konteyner