const Üye İşlevleri
Salt okunur yöntemleri işaretleyin
const Üye İşlevleri, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.
Sabit Üye İşlevi Nedir
const ile işaretlenen bir üye işlevi, nesnenin gözlemlenebilir durumunu değiştirmeyeceğini garanti eder. Anahtar sözcük, parametre listesinden sonra yazılır.
#include <iostream>
class Counter {
int n = 0;
public:
int value() const { return n; } // read-only
void inc() { ++n; }
};
int main() {
Counter c;
c.inc();
std::cout << c.value() << "\n";
}Sabit Nesneler Sabit Yöntemleri Çağırır
const bir nesne üzerinde yalnızca const üye işlevlerini çağırabilirsiniz. Sabit olmayan yöntemlere izin verilmez.
#include <iostream>
class Counter {
int n = 0;
public:
int value() const { return n; }
void inc() { ++n; }
};
int main() {
const Counter c;
std::cout << c.value() << "\n"; // OK
// c.inc(); // ERROR
}Nesne İşaretçisi Sabit Hâle Gelir
Sabit bir üye işlevinin içinde this, sabite işaret eden bir işaretçidir; bu nedenle derleyici, üyeleri değiştirme girişimlerini reddeder.
Salt Okunur Her Yöntemi Sabit Olarak İşaretleyin
Erişim işlevleri, sorgular ve yazdırma işlevlerinin tümü const olmalıdır. Böylece bunlar sabit nesneler ve sabit başvurular üzerinde çalışabilir.
Sabitlik Üzerine Aşırı Yükleme
Bir yöntemin hem sabit hem de sabit olmayan sürümünü sağlayabilirsiniz; derleyici seçimini nesnenin sabit olup olmamasına göre yapar.
#include <iostream>
#include <vector>
class Box {
std::vector<int> v{1, 2, 3};
public:
int& at(int i) { return v[i]; } // mutable access
const int& at(int i) const { return v[i]; } // read-only access
};
int main() {
Box b;
b.at(0) = 99;
std::cout << b.at(0) << "\n";
}Değiştirilebilir Anahtar Sözcüğü
mutable üyeleri, sabit bir yöntem içinde bile değiştirilebilir; bu, mantıksal durumun parçası olmayan önbellekler veya sayaçlar için kullanışlıdır.
#include <iostream>
class Cache {
mutable int hits = 0;
int data = 42;
public:
int get() const { ++hits; return data; } // hits is mutable
int hitCount() const { return hits; }
};
int main() {
Cache c;
c.get(); c.get();
std::cout << c.hitCount() << "\n";
}Mantıksal ve Fiziksel Sabitlik
const, nesnenin mantıksal durumunu korur; mutable ise önbellekler gibi uygulama ayrıntılarının bu sözü bozmadan değişmesine olanak tanır.
Sabit Yöntemler ve Sabit Başvurular
const& alan bir işlev, aldığı nesne üzerinde yalnızca sabit yöntemleri çağırabilir; sorguları sabit olarak işaretlemek için bir başka neden de budur.
#include <iostream>
class Counter {
int n = 5;
public:
int value() const { return n; }
};
void report(const Counter& c) {
std::cout << c.value() << "\n"; // needs value() to be const
}
int main() { Counter c; report(c); }Sabit Başvurular Döndürme
Sabit erişim işlevleri, üyeleri değiştirmeye veya kopyalamaya izin vermeden kullanıma açmak için çoğu zaman const& döndürür.
Sabitliği Kaldırmayın
Gerçekten sabit bir nesneyi değiştirmek için const_cast kullanmak tanımsız davranıştır. Bunun yerine, meşru istisnalar için mutable kullanın.
Sabitlik Kurallarına Uygun Sınıflar
İyi tasarlanmış bir sınıf, değiştirme yapmayan her yöntemi const olarak işaretler; böylece program boyunca sabit bağlamlarda sorunsuzca çalışır.
Kısa Kontrol
Sabit üye işlevleri konusundaki anlayışınızı sınayın.
Özet
Salt okunur yöntemleri const olarak işaretlemeyi, sabit nesnelerin yalnızca sabit yöntemleri çağırdığını, sabitliğe göre aşırı yüklemenin nasıl yapıldığını ve mutable ile uygulama ayrıntılarının değiştirilebildiğini öğrendiniz. const_cast kullanmaktan kaçının; sınıfları en baştan sabitlik kurallarına uygun tasarlayın.
Sıkça Sorulan Sorular
“const Üye İşlevleri” dersi ücretsiz mi?
Evet — “const Üye İşlevleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.
“const Üye İşlevleri” dersinde ne öğreneceğim?
Salt okunur yöntemleri işaretleyin C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C++ Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“const Üye İşlevleri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- const Değişkenleri ve Parametreleri
- const Üye İşlevleri
- constexpr ve Derleme Zamanı
- consteval ve constinit