Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

c++ programcilarina bir dizi sorular


Öne çıkan mesajlar

Mesaj tarihi:
sadede geleyim:

problemim su. diyelim ki bir class yazdim (yine diyelim adi yeni olsun), classimin constructorini da bir int alicak sekilde yazdim ki, intten benim classa casting olabilsin.

sonra da kodun bir yerinde:

yeni x = 15; (a)

dedim.

stroustrup'un kitabinda bu initialization in suna denk oldugu yaziyor:

yeni x = yeni(15); (b)

bu ikisi nasil denk olabilir? sanki yine kitapta anlatilan mekanizmalar bu denkligi ongormuyor gibi geliyor.

constructorlara cout lar falan yerlestirerek denedigimde ise, hakkaten de iki durumda da mekanizmanin ayni sekilde isledigini gordum, soyle ki: yeni'nin constructuru 15 degeri ile cagriliyor.
ama yukarida dedigim gibi bana sanki boyle olmamasi gerekirmis gibi geliyor.

2 durum icin sunlari dusundum, acaba hatam nerededir?

(a) durumunu anlamak kolay, ortada bir initialization var, initialization bir int ile yapilmak, bu durumda compiler yapmasi gerekeni yapiyor, o inti constructora arguman olarak yediriyor ve constructor i cagiriyor. (yani o int ile o objeyi yaratiyor)

(b) durumunda ise bana once bir temporary object yaratilmasi-ifadenin sag tarafindaki yeni(15) cagirimi yuzunden- , sonra da copy constructor cagrilip bu temporary object ile initialization'in yapilmasi gerekir gibi geliyor, ama oyle olmuyor.


(not:

ama mesela onceden y adli bir yeni'imiz oldugu durumda;
yeni x;
y = x;

dedigimzde tam yukarida dedigim oluyor.
)

[Bu mesaj wanderer1985 tarafından 01 Ekim 2004 19:01 tarihinde değiştirilmiştir]
Mesaj tarihi:
yok yauv a bariz.

classin int alan bir constructori var, onu cagiriyor iste nesi garip?

ama b de temporary bir object yaratmamasi garip geldi bana[signature][hline]templars of steel
Mesaj tarihi:
x sanirim bir pointer ve yeni objesine point ediyo
sen yeni x = yeni(15) dediginde yeni class inin 15 degerine sahip olan objesinin pointerlarindan birinin x oldugunu belirtiyosun
bana da (a) garip geldi nedense fazla bilmesem de pratik olarak C++ i :)[signature][hline]Silence in the studio!
Mesaj tarihi:
oole degilmidir
sen bi class in objesini yaratirsan bir isimle
ilerde onu cagirdiginda (senin durumunda x)
x bir pointer dir ve o class in belirttigin degerine isaret verir
OOC de oole diye biliyorum ben yada CMU yaz okulunda bi yalanla egittiler bizi :P[signature][hline]Silence in the studio!
Mesaj tarihi:
C++ de farkli o zaman
cunku benim dedigim sen ne dersen de bi obje yaratirken asla onun memory deki halini degistiremessin
sadece memory dei o haline bi pointer yaratirsin
ama o pointer senin icin obje olarak gorunur

farkli pointerlardan bahsediyoruz, yani sen C++ de pointer denen seyden, ben de genel programlama da pointer denen olaydan bahsediyom :P[signature][hline]Silence in the studio!
Mesaj tarihi:
eheh en bi ilginç C sorusu oldu pati deki sefdim valla

bildiğim kadarıyla ikiside explicit initilialization, constructor'ın tanımlamasına explicit getirdiğinde yeni x = 5; tipinde bir tanımlama yapamazsın.

yeni x= yeni(5) tipiylen ilgili tam bilgim yok. (az önce denediğim kadarıyla copy-constructorı private yaparsan satır hata veriyor, public olursa da kullanmıyor harbi ilginç bişi) doru düzgün bi araştırasım var bunu.[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 !
Mesaj tarihi:
sorunun cevabini buldum. bjarne stroustrup amcam dilin specification'ini yazarken yeni x = yeni(a,b,..,n) denktir yeni x(a,b,...,n); sekilnde yazmis.

tabii niye boyle yapmis da ic tutarliligi bozmus anlamak pek mumkun degil.[signature][hline]templars of steel
Mesaj tarihi:
Benim de bir sorum var:
Uzun yazılar için hangi variable kullanmalıyım?[signature][hline]-Alper viens au tableau.
-HASSKTRR YEAAA!!!
Coğrafya dersinde Alper saçmalamaya devam eder:
-Alper, kutuplara doğru yerleşim nasıldır yavrum?
-Soğuğa dayanıklı betonarme evler vardır hocam.
Mesaj tarihi:
STL nedir :)
Uzun yazı dediğim max. 15-20 karakter :)[signature][hline]-Alper viens au tableau.
-HASSKTRR YEAAA!!!
Coğrafya dersinde Alper saçmalamaya devam eder:
-Alper, kutuplara doğru yerleşim nasıldır yavrum?
-Soğuğa dayanıklı betonarme evler vardır hocam.
Mesaj tarihi:
Teşekkürler.[signature][hline]-Alper viens au tableau.
-HASSKTRR YEAAA!!!
Coğrafya dersinde Alper saçmalamaya devam eder:
-Alper, kutuplara doğru yerleşim nasıldır yavrum?
-Soğuğa dayanıklı betonarme evler vardır hocam.
Mesaj tarihi:
STL = Standart Template Library.
std = Standart Name Space

STL data structers dediğimiz işi kolaylaştırmak için hazırlanmış çok optimize ve gelişmiş class templatelerin bulunduğu kütüphanedir.
Mesaj tarihi:
STL stringlerini, sadece yazi icin degil, veri vs icin kullanabilirsiniz, uzun kisa vs diye dert etmeyin. yani, buffer olarak kullanilabiliyor mesela.

su var yalniz, kendini reallocate ediyo boyu uzadikca, buna dikkat etmeniz lazim veri koyarken, 10mbye cikaracaksaniz, byte byte degil mb mb mesela ekleyin



ilk mesajdaki sorudaysa; o da bi initialization oldugu icin copy constructor falan cagirilmiyor.[signature][hline]wastiee | PHPNotepad
×
×
  • Yeni Oluştur...