C++ sınıfımın fonksiyonunda özel durum işlenemedi hatası

qualfy

Hectopat
Katılım
3 Aralık 2020
Mesajlar
506
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
1675624483978.png


1675624528918.png


Merhaba, yazılanlardan da anlayabileceğiniz üzere birbirinden miras alan sınıflar üzerinde kendi kendime alıştırma yaparken böyle bir hata alıyorum. Alt kısımda hatalar bölmesini de paylaştım bu değişkenleri istesem constructer'da başlatabilirim fakat başka bir çözümü var mıdır merak ediyorum. Şimdiden teşekkürler.
 
Başkalarını bilmem ama ben yazılanları anlayamıyorum. Özel durum işlenmesi diye bir şey bilmiyorum ben. İngilizcesini bildiğimden eminim ama.

Soruna gelecek olursan öncelikle neredeyse her zaman yapmanız gereken değişkenleri ilklendirme (initialize) işini yapın. Aşağıdaki uyarılarda söylenmeye çalışılan şey o.
Üstteki görselde exception gelmiş. Neden geldiğini anlamıyorum. Düzgünce debug etmek lazım ki muhtemelen düzgün kod yazılsa alınmayacak bir hatadır.
Exception'ı handle edip ne olduğuna bakabilirsiniz.
 
Aşağıdakiler hata değil, uyarı. Önemli uyarılar ayrıca. İlklendirmek/başlatmak, bir üyeyi/değişkeni oluşturduktan sonra ona ilk değer atamasını yapmaya deniyor. Sınıflarda üyeler constructorlarla başlatırken, inline başlatma c++11 sonrası standartlarda destekleniyor.

Yazma erişimi ihlali bir kaç sebepten ortaya çıkar; birincisi constant bir değişkene yazmaya çalışıyorsundur, ikincisi oluşturduğun nesne constanttır dolayısıyla mutable olarak işaretlenmemiş bir değişkene yazmaya çalıştığın için (yine aslında constanta yazmaya çalışıyorsun) hata alıyorsundur ancak 2. durumun ortaya çıkması için fonksiyonu const olarak işaretlemiş olman gerekiyor dolayısıyla 2. durum pek olası değil. Daha fazla sebebi olabilir ancak şuan aklıma gelmiyor.

Sınıfı paylaşırsanız tam temel sebebi söyleyebiliriz ancak şuan ki durumda aklıma gelen şey const işaretlenmiş bir değişkene erişmeye çalıştığın. Ana ve alt sınıflar dahil her sınıf yapını paylaşman gerekiyor.

Başkalarını bilmem ama ben yazılanları anlayamıyorum. Özel durum işlenmesi diye bir şey bilmiyorum ben. İngilizcesini bildiğimden eminim ama.
Unhandled exception'ın Türkçesi "Özel Durum İşlenmedi".
 
Aşağıdakiler hata değil, uyarı. Önemli uyarılar ayrıca. İlklendirmek/başlatmak, bir üyeyi/değişkeni oluşturduktan sonra ona ilk değer atamasını yapmaya deniyor. Sınıflarda üyeler constructorlarla başlatırken, inline başlatma C++11 sonrası standartlarda destekleniyor.

Yazma erişimi ihlali birkaç sebepten ortaya çıkar; birincisi constant bir değişkene yazmaya çalışıyorsundur, ikincisi oluşturduğun nesne constanttır dolayısıyla mutable olarak işaretlenmemiş bir değişkene yazmaya çalıştığın için (yine aslında constanta yazmaya çalışıyorsun) hata alıyorsundur ancak 2. durumun ortaya çıkması için fonksiyonu const olarak işaretlemiş olman gerekiyor dolayısıyla 2. durum pek olası değil. Daha fazla sebebi olabilir ancak şu an aklıma gelmiyor.

Sınıfı paylaşırsanız tam temel sebebi söyleyebiliriz ancak şu anki durumda aklıma gelen şey const işaretlenmiş bir değişkene erişmeye çalıştığın. Ana ve alt sınıflar dahil her sınıf yapını paylaşman gerekiyor.

Unhandled Exception'ın türkçesi "özel durum işlenmedi".

Kodu forumdaki kod bloğu içine koymadan paylaşsam sıkıntı olur mu?
 

Yeni konular

Geri
Yukarı