wanderer Mesaj tarihi: Ekim 6, 2004 Konuyu açan Mesaj tarihi: Ekim 6, 2004 hmm, stl standard template library imis, ben standard library zannediyodum bayadir :) bu arada wastiee, init. lerde copy cons calismaz diye birsey yok mesela yeni x; yeni y = x; init. inde copy cons calisiyor[signature][hline]templars of steel
Rahan Mesaj tarihi: Ekim 6, 2004 Mesaj tarihi: Ekim 6, 2004 geçen mesajda dediğim gibi yeni x= yeni (15); tarzı initilization da eğer copy constructor private yapılırsa program derlenmiyor, eğer kullanılmıcak bişiyse neden el altında duruyor diye sora sora şöyle bi sonuca ulaştım (internette ve kitaplarda arıyorum ama tam bi bilgiye ulaşamıyorum, bilen eden varsa daha derinlemesine bi kaynak verirse güzel olur) buyrun efem sonucumuz; said: #include #include "conio.h" using namespace std; class initdeneme { public: int sayi; initdeneme(const int x):sayi(x) { std::cout << "constructor calisti: " << sayi << endl; } initdeneme operator +(const initdeneme& copyfrom) { initdeneme d(sayi+copyfrom.sayi); return d; } initdeneme(const initdeneme ©from) { cout << "copy constructor calisti, bu sayidan kopyalandi:" << copyfrom.sayi < } }; int main(int argc, char* argv[]) { initdeneme deneme=initdeneme(1)+initdeneme(2); getch(); return 0; } efenim burda copy constructor çalışıyor, çünkim overload ettiğimiz + operatörü temporary object yerine kanlı canlı gerçek object döndürüyor. eğer ki operator+(...) fonksiyonu aşağıdaki gibi olsaydı, said: initdeneme operator +(const initdeneme& copyfrom) { return initdeneme (sayi+copyfrom.sayi); } copy costructor çalışmayacaktı. temporary objects'den initialization yaptığında copy constructor çalışmıyor, direkt x yerine temp. objecti kullanmaya başlıosun.[signature][hline]h u m a n i t y - i s - t h e - o n l y - s u p e r p o w e r !
Ceday Mesaj tarihi: Ekim 6, 2004 Mesaj tarihi: Ekim 6, 2004 rahan o yazdıklarının birbirinden bi farkı yok ki? ikisi de calısır yani..
Ceday Mesaj tarihi: Ekim 6, 2004 Mesaj tarihi: Ekim 6, 2004 yalnız copy constructorda "sayı"ı initialize etmen gerekiyor, aksi halde garbageden alır..
Rahan Mesaj tarihi: Ekim 6, 2004 Mesaj tarihi: Ekim 6, 2004 kardeş bir tanresi çalışmıyor demedim ki :-) birinde copy constructor çalışmıyor. aha evet valla hatalı olmuş, denerken içine etmişim copy constructor'ın başında; sayi=copyfrom.sayi; olacak. [signature][hline]h u m a n i t y - i s - t h e - o n l y - s u p e r p o w e r ! [Bu mesaj Rahan tarafından 06 Ekim 2004 23:19 tarihinde değiştirilmiştir]
Ceday Mesaj tarihi: Ekim 6, 2004 Mesaj tarihi: Ekim 6, 2004 ikisinde de copy constructor calısır diorum ben iste :) = in sagına sen integer yerine initdeneme objesi koyarsan copy constructorı arar, bulursa da devam eder. bulamazsa direk önceden yaratılan objeyi kullanır..
Rahan Mesaj tarihi: Ekim 6, 2004 Mesaj tarihi: Ekim 6, 2004 mesajımın başında sonuca deneyerek ulaştığımı yazdım, ki çalışır çalışmaz demiyorum, çalışmıyor diyorum.[signature][hline]h u m a n i t y - i s - t h e - o n l y - s u p e r p o w e r !
Ceday Mesaj tarihi: Ekim 6, 2004 Mesaj tarihi: Ekim 6, 2004 hmzz en ufak bi farkları yok ama onların. neyse ben de bi deniyim olmazsa.
Ceday Mesaj tarihi: Ekim 6, 2004 Mesaj tarihi: Ekim 6, 2004 ilginc walla bende calısıyor sorunsuz. VC++ 6.0 kullanıyorum
wastiee Mesaj tarihi: Ekim 6, 2004 Mesaj tarihi: Ekim 6, 2004 said: wanderer1985, 06 Ekim 2004 21:35 tarihinde demiş ki: hmm, stl standard template library imis, ben standard library zannediyodum bayadir :) bu arada wastiee, init. lerde copy cons calismaz diye birsey yok mesela yeni x; yeni y = x; init. inde copy cons calisiyor ehe zaten kesin calismaz demedim ki, bu durumda tabi ki calisir gerek yoksa ama calismaz, c++ 'in en onemli ozelligi, templateleri, templateleri kullanarak yaptiginiz herseyin run-timeda degil, compile-time 'da olusturulmasi, inline fonksiyonlar vs.. yani, compile-time 'da optimizasyon var hayvan gibi :)[signature][hline]wastiee | PHPNotepad
Rahan Mesaj tarihi: Ekim 7, 2004 Mesaj tarihi: Ekim 7, 2004 said: CEDAY, 06 Ekim 2004 23:51 tarihinde demiş ki: ilginc walla bende calısıyor sorunsuz. VC++ 6.0 kullanıyorum vc++6, vs.net 2003, vc++ 2005 express beta nın 3 ünde de denedim, copy constructor çalışmıo. kod da burda.[signature][hline]h u m a n i t y - i s - t h e - o n l y - s u p e r p o w e r !
Ceday Mesaj tarihi: Ekim 7, 2004 Mesaj tarihi: Ekim 7, 2004 linkte sorun var indiremiyorum. benim denedigim mesajındaki codeun aynısı, c/p etmistim..
Öne çıkan mesajlar