Class Member Functions (Sınıf Üyesi Fonksiyonlar)
C++’ da üye fonksiyonlar, bildirimleri sınıf tanımının içinde bulunan ve sınıfın veri üyeleri üzerinde çalışan fonksiyonlardır. Üye fonksiyonların tanımı, sınıf tanımının içinde veya dışında olabilir.
Sınıf tanımının dışında bir fonksiyon tanımlamak için, onu sınıfın içinde bildirmemiz ve ardından sınıfın dışında tanımlamanız gerekir. Bu, sınıfın adı belirtilerek yapılır, ardından :: operatörü sonra ardından fonksiyon adı yazılır.
Syntax (Sözdizimi)
class sinifAdi { //Sınıf bloğu public: // Erişebilirdik seviyesini belirledik void methodAdi(); // Method tanımladık, aynı zamanda buna fonksiyonda diyoruz. }; void sinifAdi::methodAdi() { cout << “Caner KARADAĞ” << endl; // Ekrana Caner KARADAĞ yazdırdık. } int main(){ sinifAdi sa; // sinifAdi nesnesini oluşturduk sa.methodAdi(); // Oluşturduğumuz methodu çağırdık return 0; }
Örnek:
#include <iostream> using namespace std; class Dolap { public: double yukseklik; double genislik; double derinlik; double getHacim(void); }; double Dolap::getHacim(void){ return yukseklik * genislik * derinlik; } int main() { Dolap d1; Dolap d2; Dolap d3; double hacim=0.0; d1.yukseklik =9.3; d1.genislik =12.8; d1.derinlik =6.1; d2.yukseklik =3.42; d2.genislik =34.4; d2.derinlik =53.1; d3.yukseklik =23.5; d3.genislik =53.33; d3.derinlik =13.7; cout << "Birinci dolabın hacmi: " << d1.getHacim() << endl; cout << "İkinci dolabın hacmi: " << d2.getHacim() << endl; cout << "Üçüncü dolabın hacmi: " << d3.getHacim() << endl; return 0; }
Çıktı:
Birinci dolabın hacmi: 726.144 İkinci dolabın hacmi: 6247.11 Üçüncü dolabın hacmi: 17169.6
Bu yapıda önemli olan nokta, sınıf adını :: operatöründen hemen önce kullanmanız gerektiğidir. Bir üye fonksiyonu, yalnızca o nesneyle ilgili verileri aşağıdaki gibi bir nesne üzerinde nokta operatörü (.) kullanılarak yapabiliriz.
Örnek:
#include <iostream> using namespace std; class Dolap { public: int adet; double yukseklik; double genislik; double derinlik; double getHacim(void); int getAdet(void); int setAdet(int adt); double setYukseklik(double yuk); double setGenislik(double gen); double setDerinlik(double der); }; double Dolap::getHacim(void){ return yukseklik * genislik * derinlik; } int Dolap::getAdet(void){ return adet; } int Dolap::setAdet(int adt){ adet = adt; } double Dolap::setYukseklik(double yuk){ yukseklik = yuk; } double Dolap::setGenislik(double gen){ genislik = gen; } double Dolap::setDerinlik(double der){ derinlik = der; } int main() { Dolap d1; Dolap d2; Dolap d3; double hacim=0.0; int adet=0; d1.setAdet(4); d1.setYukseklik(9.3); d1.setGenislik(12.8); d1.setDerinlik(6.1); d2.setAdet(9); d2.setYukseklik(3.42); d2.setGenislik(34.4); d2.setDerinlik(53.1); d3.setAdet(7); d3.setYukseklik(23.5); d3.setGenislik(53.33); d3.setDerinlik(13.7); hacim = d1.getHacim(); adet = d1.getAdet(); cout << "Birinci dolabın hacmi: " << hacim << ", adet sayisi: " << adet << ", toplam hacim: " << hacim * adet << endl; hacim = d2.getHacim(); adet = d2.getAdet(); cout << "İkinci dolabın hacmi: " << hacim << ", adet sayisi: " << adet << ", toplam hacim: " << hacim * adet << endl; hacim = d3.getHacim(); adet = d3.getAdet(); cout << "Üçüncü dolabın hacmi: " << hacim << ", adet sayisi: " << adet << ", toplam hacim: " << hacim * adet << endl; return 0; }
Çıktı:
Birinci dolabın hacmi: 726.144, adet sayisi: 4, toplam hacim: 2904.58 İkinci dolabın hacmi: 6247.11, adet sayisi: 9, toplam hacim: 56224 Üçüncü dolabın hacmi: 17169.6, adet sayisi: 7, toplam hacim: 120187