SİBERSALDİRİ.COM · KONU ODAKLI DERS
Bu derste kazanacaklarınız
- Durum kodu ile Doğrulanmış enum arasındaki ilişkiyi açıklamak.
- “Enum kullanmak yetkisiz geçişi engeller mi?” sorusuna gerekçeli yanıt vermek.
- Örneği değiştirip beklenen ve gözlenen davranışı karşılaştırmak.
Çalışma mantığı ve güven sınırı
Dış API sayısal kod gönderiyorsa bu kodu doğrudan geçerli enum saymayın. Ayrıştırma katmanı yalnızca tanımlı değerleri kabul etmelidir. Yeni durum eklenince switch kararlarını ve serileştirmeyi güncelleyin. İsimli durum kullanmak güvenlik kontrolünü otomatik sağlamaz; hangi geçişin kim tarafından yapılabileceği ayrıca tanımlanır.
Açıklamalı örnek
Aşağıdaki parça kavramı görünür kılar. Komut veya kod içeren örnekleri üretim sisteminde değil, size ait ayrı deneme ortamında değerlendirin. Mimari şema ve politika örnekleri çalıştırılabilir program değildir.
#include <iostream>
enum class Review { Pending, Approved };
int main() {
Review state{Review::Pending};
std::cout << (state == Review::Approved);
}Beklenen sonuç ve yorumu
0 yazılır; bekleyen kayıt onaylı değildir.
Karşılaştırmalı durumlar
| Durum | Beklenen yaklaşım | Neden? |
|---|---|---|
| Tanımlı durum | Enum değeri | Açık sözleşme vardır |
| Dışarıdan bilinmeyen sayı | Reddet | Geçerli enum garantisi yoktur |
| Yasak durum geçişi | Politika kontrolü | Enum yetkilendirme değildir |
Uygulama görevi
Onaylama işlemini yalnızca Pending durumundan kabul eden bir fonksiyon tasarlayın.
- İşlemden önce beklenen sonucu ve kabul koşulunu yazın.
- Tek bir değişkeni değiştirin; gözlemi ve kullandığınız ortamı kaydedin.
- Sonucu yukarıdaki karşılaştırma tablosuyla değerlendirin. Uymayan durumda hangi varsayımın yanlış olabileceğini açıklayın.
Sık yapılan hata ve düzeltme yönü
Sayısal girdiyi doğrulamadan static_cast ile geçerli iş durumu saymayın.
Kendinizi sınayın
Enum kullanmak yetkisiz geçişi engeller mi?
Açıklamalı yanıt: Hayır. Değer kümesini düzenler; geçiş yetkisi ve iş kuralı ayrıca kontrol edilir.
İlgili derslerle ilerleyin
- C++ struct: İlgili verileri bir sözleşmede toplama
- C++ referansları: Takma ad ve yaşam süresi
- C++ dizileri: Sabit boyut ve sınır güvenliği
- C++ işaretçileri: Adres ile sahipliği ayırma
Teknik başvuru
Bu dersin anlatımı ve örnekleri akademi için yeniden hazırlanmıştır. Aşağıdaki bağlantı, kullanılan teknoloji veya güvenlik yaklaşımının ayrıntılarını doğrulamak için teknik başvurudur.
