: sayaç'ı değil SAYI değişkenini değiştirmişsin: DENEME operator ++ Orayla alakası yok. Adam ++ ile sayı değişkenini arttırıyor. Constructor ile sayaç arttırılmış zaten. Orda belirttiğim üzere adres konusunda sıkıntı var. Diğer türlü destructor her seferinde tetikleniyor ve sen suni bir şekilde, düşen değeri tekrar overloaded fonksiyon ile arttırıyorsun. yle de çalışıyor gibi gzükse de doğru bir yntem değil.

++ ile nesnedeki sayıyı arttırırken geçici bir nesne yaratmışsın ve o nesnenin kendisini dndürmüşsün. Bu yarattığın geçici nesne senin yarattığın nesnenin adresine yazıyor ve nesne yok olduğu için destructor devreye giriyor.

Hocam nesnenin kendisini referans olarak dndürmeyi düşündüm zaten çalıştırmıştımda. Benim asıl sorunum kendi yazdığım: DENEME operator ++ fonsiyondaki hatanın sebebi ne? Ben hata gremiyorum yada yanlış kullanım? "Senin problem ++ yı overload ettiğnde "yanlış kullanımdan" "nesne adresine erişimdn" doğn sıkıntıdan kaynaklanıyor." Biraz daha ayrıntıya inersen sevinirim hocam. Koddaki yanlış kullanımı anlayamadım zira :S Teşekkürler. Bu imzayı her grdüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı smürmektir

Konu güncel! Bu imzayı her grdüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı smürmektir

#include <iostream>#include <conio. h>using namespace std;class DENEME{private: int64 SAYI;public: static int sayac; DENEME :SAYI(0) DENEME DENEME operator ++ void yazdir };int DENEME::sayac=0;void test int main Sorumu anlayabilmeniz için DENEME nesnesinin ne işe yaradığınıda iyi bilmeniz gerekmektedir. Şimdi bu programın mantıken çıktısı şu şekilde olması lazım: Sayac su an:2Sayac su an:3Sayac su an:2 Ancak programın çıktısı şu şekilde: Sayac su an:-1Sayac su an:0Sayac su an:-1 Programın normal şekilde çalışmasını sağlamam için aşağıdaki kod satırını main kod bloğunda çalıştırmam gerekiyor. DENEME a, b; / ++a; ++b; a=++b; / cout << endl << "Sayac su an:" << a. sayac; test ; cout << endl << "Sayac su an:" << a. sayac; getch ; return 0; Programın yanlış çalışma sebebi. ++a; ++b; a=++b; Bu kodların çalıştırdığı operatr overloaded fonksiyonu çalıştırması; Operatre Aşırı yükleme yaptığım fonksiyondan sonra DENEME operator ++ Bu fonksiyon 2 kere çalışıyor DENEME Denediğim Ortamlar: Visual Studio 2008 ve Embarcadero 2010 Rad Studio İkisindede aynı sorunu yaşıyorum. Sebepleri, çzüm nerileriniz, ve konu hakkında fikirlerinizi almak istiyorum. Saygılar Bu imzayı her grdüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı smürmektir

Bu açıklayıcı oldu biraz teşekküre ederim. Bu imzayı her grdüğünüzde 4gb kotanızın 0,00000358559191226959228515625 azalmaktadır. Bilerek ve istenerek bu imza yapılmıştır. Amaç kotanızı smürmektir

sayaç'ı değil SAYI değişkenini değiştirmişsin: DENEME operator ++ Düşünüyorum, o halde varım.

Nesne adresiyle ilgili sıkıntı var hoca. Koddaki operator overload kullanımı doğru değil. Şu şekilde olması gerek. DENEME & operator ++