wanderer Mesaj tarihi: Ekim 6, 2004 Konuyu açan Paylaş 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 Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Rahan Mesaj tarihi: Ekim 6, 2004 Paylaş 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 ! Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ceday Mesaj tarihi: Ekim 6, 2004 Paylaş Mesaj tarihi: Ekim 6, 2004 rahan o yazdıklarının birbirinden bi farkı yok ki? ikisi de calısır yani.. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ceday Mesaj tarihi: Ekim 6, 2004 Paylaş Mesaj tarihi: Ekim 6, 2004 yalnız copy constructorda "sayı"ı initialize etmen gerekiyor, aksi halde garbageden alır.. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Rahan Mesaj tarihi: Ekim 6, 2004 Paylaş 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] Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ceday Mesaj tarihi: Ekim 6, 2004 Paylaş 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.. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Rahan Mesaj tarihi: Ekim 6, 2004 Paylaş 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 ! Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ceday Mesaj tarihi: Ekim 6, 2004 Paylaş Mesaj tarihi: Ekim 6, 2004 hmzz en ufak bi farkları yok ama onların. neyse ben de bi deniyim olmazsa. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ceday Mesaj tarihi: Ekim 6, 2004 Paylaş Mesaj tarihi: Ekim 6, 2004 ilginc walla bende calısıyor sorunsuz. VC++ 6.0 kullanıyorum Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
wastiee Mesaj tarihi: Ekim 6, 2004 Paylaş 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 Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Rahan Mesaj tarihi: Ekim 7, 2004 Paylaş 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 ! Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ceday Mesaj tarihi: Ekim 7, 2004 Paylaş Mesaj tarihi: Ekim 7, 2004 linkte sorun var indiremiyorum. benim denedigim mesajındaki codeun aynısı, c/p etmistim.. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar