type qualifiers storage classes c
C ++ 'da Tür Niteleyicilerinin Ve Depolama Sınıflarının Önemi.
Bunda Özel C ++ Eğitim Serisi , değişkenler konusunu daha da genişleteceğiz ve bu öğreticide C ++ 'da tür niteleyicileri ve depolama sınıflarını göreceğiz. Bu küçük bir konu olmasına rağmen, C ++ programlama söz konusu olduğunda çok önemli ve önemlidir.
C ++ 'daki tür niteleyicileri birlikte kullanıldıkları değişkenlerin veya varlıkların anlamını değiştirmez, bunun yerine varlığa yalnızca fazladan bilgi eklerler.
Ne öğreneceksin:
C ++ Yazım Niteleyicileri
C ++ 'daki tür niteleyicileri, değişkenin sabit veya uçucu olması gibi değişkene ekstra özellikler ekler.
Tür niteleyicileri, değişkenin anlamını veya yorumunu aynı tutarak bir değişkene erişilme şeklini veya bir değişkenin bellekte depolandığı yeri ifade eder. Bir bakıma, tür niteleyicileri değişkenlere daha fazla ayrıntılandırma ekler.
C ++ 'da, tür niteleyicisi, değişkenin tür belirticisinden (veri türü) hemen önce belirtilir.
C ++ 'daki tür niteleyicileri aşağıda gösterildiği gibi sınıflandırılır:
# 1) sabit
Tür belirticisi 'const', const türündeki nesneleri tanımlamak içindir. Bir const nesnesi veya değişken, bildirildikten sonra değiştirilemez. Const nesnesini veya değişkenini değiştirmek için bir girişimde bulunulursa, derleyici bir hata verir. Önceki dersimizde sabitler / literal hakkında daha önce görmüştük.
Sabit anahtar sözcüğünü kullanan sabitlerin tanımı, tür niteleyicisine 'const' karşılık gelir.
# 2) uçucu
Tür niteleyicisi 'uçucu', uçucu olarak işaretlenen değişkenin değerinin program tarafından belirtilmeyen başka yollarla değiştirilebileceği anlamına gelir. Değişken olan değişkenler genellikle bazı dış faktörlere bağlı olarak değişir ve program nedeniyle olması gerekmez. Başka bir deyişle, doğaları gereği uçucudurlar.
Örneğin, Sıcaklığı gerçek bir kelimeyle okuyan bir değişken, okuma sıcaklığı program tarafından tamamen kontrol edilemeyebileceği için uçucu hale getirilebilir.
# 3) değiştirilebilir
'Değiştirilebilir' tür niteleyici, üyeleri veya değişkeni değiştirilebilir hale getirir.
Değiştirilebilir niteleyici, genellikle const olmayan ve başvuru olmayan türdeki statik olmayan sınıf üyelerine uygulanır. Belirli durumlara göre, bazı değişkenlerin değişmez kalmasına (değiştirilemez) ve bazı değişkenlerin değiştirilebilir olmasına ihtiyacımız olabilir. Bu tür niteleyici, değişebilir özellikler istediğimizde çok yardımcı olur.
C ++ 'da Depolama Sınıfları
Şimdiye kadar, tüm C ++ değişkenlerini ayrıntılı olarak tartıştık. Değişkenlerin ilgili veri türleri ile bildirildiğini ve daha sonra programda kullanıldığını gördük. Bir değişkeni tam olarak tanımlamak için, veri türlerinden ayrı depolama sınıflarına da ihtiyacımız var.
Şimdiye kadar değişkenler için herhangi bir depolama sınıfı belirtmemiş olsak da, tüm değişkenlere uygulanan varsayılan bir depolama sınıfı 'auto' vardı.
Peki Depolama Sınıfları nelerdir?
Depolama sınıfları, değişkenin veya bir işlevin derleyici tarafından nasıl ele alınacağını ve bir değişken için depolamanın nasıl tahsis edileceğini belirtir. Bir değişkenin görünürlüğünü veya kapsamını ve ömrünü tanımlar. Değişkenin ömrü, değişkenin ne kadar süre aktif kalacağıdır.
Değişkenin görünürlüğü veya kapsamı, değişkenin hangi işlevlere veya modüllere erişilebileceğidir. Bu depolama sınıfları, değişkenin veri türünden önce belirtilir.
C ++ 'da aşağıdaki depolama sınıflarına sahibiz:
# 1) Otomatik Depolama Sınıfı
Bu, varsayılan depolama sınıfıdır. Depolama sınıfı 'Otomatik' yerel değişkenlere uygulanır ve derleyici tarafından otomatik olarak yerel değişkenlere atanır. Önünde 'auto' anahtar sözcüğü bulunan yerel değişkenler, bildirildikleri işlevde etkin kalır ve işlev çıktıktan sonra kapsam dışına çıkar.
'Otomatik' depolama sınıfına sahip değişkenler başlatılmamışsa veya herhangi bir değer atanmamışsa, bunlar gereksiz veya tanımlanmamış değerlere sahiptir.
Bir C ++ programındaki otomatik değişkenlerin bir örneğini görelim.
#include using namespace std; int main() { int i; float f; cout<<'Variable i = '< Onlara herhangi bir değer atamadığımız için, bu değişkenleri yazdırdığımızda, her ikisinin de değerlerinin = 0 olduğunu görürüz. Bu, programda zaten herhangi bir değer atanmamışsa, otomatik yerel değişken atanacak değerlere tamamen derleyiciye bağlıdır .
NOT: C ++ 11'den başlayarak, auto anahtar sözcüğü aşağıdakiler için kullanılır: tür çıkarımı . Bu, auto i = 10 gibi bir kod kullanabileceğimiz anlamına gelir ve I veri türü, i için kullanılan başlatıcıdan doğrudan çıkarılır. Bu nedenle, 'auto float f;' gibi bir şey bildirirsek, derleyici bir hata gösterecektir.
Bu nedenle, varsayılanın her zaman otomatik depolama sınıfı olacağı ima edildiğinden, genellikle auto depolama sınıfı için bildirim kullanmayız.
# 2) Depolama Sınıfını Kaydedin
Bir değişkenin daha hızlı erişime ihtiyacı olduğuna dair bir gereksinimimiz olduğunda, kayıt depolama sınıfını kullanırız. Dolayısıyla, değişkenleri Rasgele Erişim Belleğinde (RAM) depolamak yerine, bu değişkenler CPU yazmacında saklanır ve bir yazmaçunkine eşit bir boyuta sahiptir.
Ek olarak, bu değişkenlerin bellek konumu olmadığından, bu değişkenlerle '&' operatörünü kullanamayız.
Register depolama sınıfına sahip bir değişkene sahip olmak, değişkenin her zaman kayıtta saklanacağını garanti etmez. Bunun yerine, değişkenin bir kayıtta saklanabileceğini ve tamamen donanıma ve uygulamaya bağlı olduğunu varsayar.
Kayıt değişkenleri, otomatik değişkenlere benzer kapsama ve yaşam süresine sahiptir.
Örneğin,
#include using namespace std; int main() { int i; register float f; cout<<'Variable i = '< # 3) Harici Depolama Sınıfı Değişkenlerin birden çok dosya arasında paylaşılması gerektiğinde harici depolama sınıfı gereklidir. Harici değişkenlerin genel kapsamı vardır ve bu değişkenler, bildirildikleri dosyanın dışında görülebilir.
Dış değişkenler, başka bir dosyanın dışında bildirilen ve tanımlanan değişkenler olduğundan, bunlar başlatılmaz.
Dış değişkenlerin genel kapsamı vardır ve harici değişkenlerin yaşam süresi, içinde sonlandırılmış olarak bildirildiği program kadar uzundur.
Harici değişkenler aşağıdaki gibi tanımlanabilir:
extern int temp; int temp;
Yukarıdaki örnekte, aynı ada sahip iki değişken bildirimimiz var ancak ilki, başka bir yerde tanımlanan extern değişkendir. Bu extern değişkeni, programımıza extern değişkeninin tanımlandığı kaynak dosyayı dahil ettiğimizde faydalı olacaktır.
# 4) Statik Depolama Sınıfı
Statik depolama sınıfı, derleyiciye değişkenin değerini programın ömrü boyunca korumasını söyler. Statik değişkenler yerel değişkenlere benzer, ancak önünde 'statik' anahtar kelime bulunur.
İşlev çıktıktan sonra kapsam dışına çıkan yerel değişkenlerin aksine, statik değişkenler, bir işlev veya blok çıktığında kapsam dışına çıkmaz ve işlev çağrıları arasında değerleri korunur.
Statik değişkenler başlatılır ve depolama, bir programın ömrü boyunca bunlara yalnızca bir kez tahsis edilir. Statik değişkenler, bildirim sırasında zaten başlatılmamışsa, 0 olarak başlatılır.
Statik Depolama Sınıfını daha iyi anlamak için aşağıdaki Örneğe bakalım.
#include using namespace std; void printvar() { static int var; var++; cout<<'static variable var = '< Çıktı:
printvar çağrısı 1: statik değişken var = 1
printvar çağrısı 2: statik değişken var = 2
printvar çağrısı 3: statik değişken var = 3
en iyi ücretsiz mp3 müzik indirici uygulaması
printvar çağrısı 4: statik değişken var = 4
Yukarıdaki kodda, int türünde statik bir değişken değişkenini tanımladığımız bir 'printvar' fonksiyonumuz var. Daha sonra bu değişkeni artırıp yazdırıyoruz. Ana işlevde, printvar işlevini dört kez çağırıyoruz.
Şimdi çıktıyı kontrol edin. Çıktı, her işlev çağrısında statik değişken var'ın önceki değerinden 1 artırıldığını gösterir. Bu, değişkenin işlev çağrıları arasında değerini korumasına yardımcı olan statik depolama sınıfıdır. Statik değişken, her işlev çağrısı için yeniden başlatılmaz.
Ayrıca printvar fonksiyonunda statik değişkeni tanımladığımızı ve onu başlatmadığımızı da fark etmeliyiz. Statik değişkenleri başlatmadığımızda, bunlara 0 başlangıç değeri atanmaları dikkat çekicidir.
Not: Statik depolama sınıfı, global değişkenlere de uygulanabilir. Bu durumda, değişken genel kapsama ve ayrıca statik depolamaya sahip olacaktır.
# 5) Değişken Depolama Sınıfı
Değiştirilebilir depolama sınıfı, yalnızca sınıf nesnelerine uygulanır. Değiştirilebilir depolama sınıfını uygulayarak, bir nesnenin üyesi 'const' üye işlevini geçersiz kılabilir. Bu, değiştirilebilir bir üye veya nesnenin, 'const' olan bir üye işlevi tarafından değiştirilebileceği anlamına gelir.
C ++ 'da nesne yönelimli programlama hakkında bilgi edindiğimizde, daha sonraki eğitimlerimizde const işlevleri ve nesneler ile değiştirilebilir üyeler hakkında daha fazla bilgi edineceğiz.
Sonuç
Bu tamamen C ++ 'daki tür belirticileri ve depolama sınıflarıyla ilgilidir. Bu eğitim aracılığıyla depolama sınıfları ve tür belirleyicileri hakkındaki tüm kavramları açıklığa kavuşturabildiğimizi umuyoruz.
Yaklaşan eğitimimizde, C ++ 'da kullanılan çeşitli operatörler ve bunların kullanımları hakkında daha fazla bilgi edineceğiz.
=> Tam C ++ Eğitim Serisini Buradan Kontrol Edin
Önerilen Kaynaklar
- C ++ 'da Değişkenler
- Python Değişkenleri
- Java Arayüzü ve Örneklerle Soyut Sınıf Eğitimi
- Dönüşümleri C ++ olarak yazın
- VBScript Değişkenleri: Değişkenler Nasıl Bildirilir ve Kullanılır - VBScript Dim
- JMeter Değişkenleri ve Fonksiyonları
- 10 EN İYİ Ücretsiz Bulut Depolama Sağlayıcısı (Çevrimiçi Depolama 2021)
- Geçiş Testi Türleri: Her Tür İçin Test Senaryoları ile