Hata: Int C++'da Referansı Kaldırılamıyor

Hata Int C Da Referansi Kaldirilamiyor



Programlama dilleri, onlarla çalışırken kitaplıklara, işlevlere, sözdizimine ve diğer şeylere ihtiyaç duyar. Dolayısıyla kodlarımızın hata içerme ihtimali var. C++'da programlamanın birçok farklı hata türü vardır. Burada “int’in C++’ta referansı kaldırılamıyor” hatasını tartışacağız. Bu hata, “*” ayırma operatörünü “int” tamsayı tipi verisi ile kullanmaya çalıştığımızda ortaya çıkar çünkü “int” ilkel bir veri tipidir. C++ programlamada “int”in referansını kaldıramayız. Burada “int C++'da iptal edilemiyor” hatası ve çözümü detaylı olarak incelenecektir. Bu hatanın nasıl oluştuğunu ve C++'da bu tür hatanın nasıl ele alınacağını göreceğimiz bu kılavuzda bazı kodlar verilmiştir.

Örnek 1: Referansın Kaldırılması Int







Bu kodda, C++'daki “int” ifadesinin referansını kaldırmaya çalışacağız. Artık tanımlanmış fonksiyonları kullanmak için “iostream” başlık dosyasını dahil ediyoruz. Bunun altında “namespace std”yi kullanıyoruz ve burada “main()” metodunu çağırıyoruz. Daha sonra “my_num” değişkenini “int” veri tipiyle deklare edip bu değişkene “99” atadık.



Şimdi “int” veri tipinin “my_value”sunu bildirip “*my_num” ile başlatıyoruz, bu da “int” veri tipindeki “my_num” değişkeninin referansını kaldırmaya çalıştığımız anlamına geliyor. Derleme sırasında hata bu satırda oluşuyor çünkü “int” referansını kaldıramıyoruz. İnt'in referansını kaldırdıktan sonra elde ettiğimiz değeri görüntülemek istiyoruz, bu yüzden içine “my_value” değişkenini eklediğimiz “cout”u yerleştiriyoruz.



Kod 1:





#include
ad alanı std'sini kullanma;
int ana ( ) {
int benim_num = 99 ;
int değerim = * benim_num;
cout << 'İnt'nin referansını kaldırarak elde ettiğimiz değer: ' << değerim << sonunda;
geri dönmek 0 ;
}

Çıktı:



Burada hiçbir değerin görüntülenmediğini ve geçersiz bir tekli '*' argümanı olduğunu belirten bir hata oluştuğunu fark edebiliriz. Bu, C++'daki 'int' ifadesinin referansını kaldıramayacağımız anlamına gelir.

1. Çözüm: Referans Kaldırmadan

Burada tamsayı değerini referans kaldırmadan doğrudan alacağız. Bazı fonksiyon tanımları mevcut olduğundan “iostream” başlık dosyasını içe aktarıyoruz. Daha sonra “using” anahtar kelimesiyle birlikte “namespace std” yazıp buraya “main()” metodunu çağırıyoruz. Şimdi “int” veri tipinin “my_num” değişkenini “99” değeri ile başlatıyoruz.

Daha sonra “my_value” isimli başka bir değişkeni başlatıyoruz ve ona tam sayıyı içeren “my_num” değişkenini atadık. Bundan sonra “cout” içerisine “my_value” yerleştirerek bu tamsayı değerini referans kaldırmadan doğrudan elde ediyoruz. Bu, tamsayı değerini alır ve görüntüler.

Kod 1:

#include
ad alanı std'sini kullanma;
int ana ( ) {
int benim_num = 99 ;
int değerim = sayım;
cout << 'İnt'in referansını kaldırmadan elde ettiğimiz değer: ' << değerim << sonunda;
geri dönmek 0 ;
}

Çıktı:

C++ kodumuzda referansı kaldırmadan elde ettiğimiz tamsayı değeri burada işlenir. Bu tamsayı değerine doğrudan ulaşıp onu görüntülüyoruz.

Çözüm 2: İşaretçinin Referansını Kaldırarak

“iostream” başlık dosyası belirli fonksiyon tanımlarını içerir; bunları ithal ettik. Daha sonra “namespace std” ve “using” anahtar kelimesini yazdıktan sonra burada “main()” fonksiyonunu çalıştırıyoruz. “int” veri tipinin “my_num” değişkeni artık “99” değeriyle başlatılmıştır.

Bundan sonra bir “my_ptr” işaretçisini başlatıyoruz ve bu işaretçiye “my_num” değişkeninin adresini atadık. Bunun altında ise “my_value”yu “*my_ptr” ile başlattığımız için pointerın referansını kaldırıyoruz ve buradan elde ettiğimiz değeri “my_value” değişkenine atadık. Şimdi işaretçinin referansını kaldırarak elde ettiğimiz tamsayı değerini görüntülemek için “my_value” değişkenini geçirdiğimiz “cout”u yerleştiriyoruz.

Kod 2:

#include
ad alanı std'sini kullanma;
int ana ( ) {
int benim_num = 99 ;
int * my_ptr = & benim_num;
int değerim = * my_ptr;
cout << 'Bir işaretçinin referansının kaldırılmasıyla elde ettiğimiz int değeri: ' << benim_değerim << sonunda;
geri dönmek 0 ;
}

Çıktı:

Kodumuzda pointerın referansını kaldırdıktan sonra elde ettiğimiz tamsayı değeri artık burada görüntüleniyor. Yani bu, C++'ta referans kaldırmayı uygulamanın doğru yoludur.

Örnek 2: Int'nin Referansının Kaldırılması

Bu kodda C++'daki “int” ifadesini kaldırmaya çalışalım. “iostream”de tanımlanan fonksiyonları kullanmak için sadece “iostream” başlık dosyasını eklememiz yeterli. Burası “namespace std”yi kullandığımız ve “main()” fonksiyonunu çağırdığımız yerdir. Daha sonra “a” değişkenini oluşturup ona “int” veri tipini ve “75” değerini veriyoruz.

Bunun altında “newPointer” isminde bir pointer oluşturuyoruz ve “&” yardımıyla bu pointer’a “a” değişkeninin adresini atıyoruz. Daha sonra aşağıdaki “num” değişkenini “*a” ile başlatıyoruz, bu da “int” veri tipindeki “a” değişkeninin referansını kaldırmaya çalıştığımızı gösteriyor. “int” referansını kaldıramadığımız için artık derleme sırasında bu satırda hata üretiliyor. Bundan sonra “num” değişkenini eklediğimiz “cout”u da kullanıyoruz.

Kod 2:

#include
ad alanı std'sini kullanma;
int ana ( ) {
int a = 75 ;
int * yeniİşaretçi = & A;
tam sayı = * A;
cout << 'İnt'nin referansının kaldırıldığı değer: ' << birde << sonunda;
geri dönmek 0 ;
}

Çıktı:

Burada herhangi bir değerin gösterilmediğini ve “unary'nin geçersiz tür parametresi”*” şeklinde bir hata mesajı göründüğünü görüyoruz. Bu, C++'da “int”in referansının kaldırılamayacağını gösterir.

1. Çözüm: Referans Kaldırmadan

Tamsayı değerini hemen elde etmek için referansı kaldırmamız gerekmeyecek. “iostream” başlık dosyası belirli fonksiyon tanımlarını içerdiğinden içe aktarıyoruz. Daha sonra “using” ve “namespace std” anahtar sözcükleri girildikten sonra “main()” işlevi çağrılır. “int” veri tipinin “a” değişkeni artık “75” değeriyle başlatılmıştır. Daha sonra bu tamsayı değerini referanstan ayrılmadan hemen elde etmek için “cout”un içine “a” harfini ekliyoruz. Bu, tamsayı değerini alır ve burada gösterir.

Kod 1:

#include
ad alanı std'sini kullanma;
int ana ( ) {
int a = 75 ;
cout << 'Kayıt kaldırmadan elde ettiğimiz değer: ' << A << sonunda;
geri dönmek 0 ;
}

Çıktı:

C++ kodumuzdan referans kaldırmadan elde edilen tamsayı değeri burada sunulmaktadır. Bu tamsayı değerine hemen erişilebilir ve burada gösterilmektedir.

Çözüm 2:

Bazı fonksiyon tanımlarını içeren “iostream” başlık dosyasını içe aktarıyoruz. Burada “main()” fonksiyonunu çalıştırmadan önce “namespace std” ve “using” anahtar kelimesini yazıyoruz. “a” değişkenine “75” değeri atanmıştır.

Daha sonra, 'mypointer' adında bir işaretçi bildiririz ve onu 'a' değişkeninin adresiyle başlatırız. Bunun altında pointerın referansını kaldırıyoruz ve “*mypointer” ile “result”u başlattığımızda bundan elde ettiğimiz değeri “result” değişkenine atadık. İşaretçinin referansını kaldırdıktan sonra “cout” komutunu yerleştirip tam sayı değerini gösterecek “result” değişkenini geçiyoruz.

Kod 2:

#include
ad alanı std'sini kullanma;
int ana ( ) {
int a = 75 ;
int * işaretçim = & A;
int sonuç = * işaretçim;
cout << 'İşaretçinin referansını kaldırarak elde ettiğimiz değer: ' << sonuç << sonunda;
geri dönmek 0 ;
}

Çıktı:

Bu, C++'ta referans kaldırmayı uygulamak için uygun tekniktir. “int”in referansını kaldırmak yerine işaretçinin referansını kaldırdıktan sonra elde ettiğimiz tamsayı değerini işler.

Çözüm

C++'da “int”in referansını kaldırarak değer elde etmeye çalıştığımızda, “int içeren tekli “*”nin geçersiz tür parametresi” hatasının ortaya çıkacağını, bunun da “C++'da int'in referansı kaldırılamaz” anlamına geldiğini araştırdık. Bu hatanın çözümünü de anlattık. Hataların oluştuğu kodları ve o hatanın çözümünü verdiğimiz kodları bu kılavuzda kullandık.