int a() {
return 5;
}
int b() {
a();
}
su sekilde olsa tamam da;
int b() {
return a();
}
direkt a(); deyince return yapar mi emin olamadim.
b, a'yı çalıştırıyo a zaten "return 5;"
@nawres, a zaten fonksiyon, döndürür direk.
yazılı sınav olsa ben olsam bir şey döndürmez derdim, a 5 döndürüyor tamam da b fonksiyonu bir şey döndürmüyor.
hem hata vermesi gerekmiyor mu bu yazdıklarının ? eve gidince deneyeceğim, takibe aldım duyuruyu.
@egomanyak
peki return a();
desek ne olur?
int b() {
a();
}
====
int b() {
return 5;
}
olmuyor mu ?
@nawres, şimdi bak sen de mantıklı geldin :D biri denesin harbi
visual studio 2010 da bu şekilde çalışmadı. b must return a value diyor.
MinGW ile çalışıyor, o yüzden sordum zaten :)
nsa compile olmamasi lazim. demek ki return yoksa en sondaki statementi donduruyor kullandiginiz compiler.
Ben de visual studio 2010 ile denedim, inheritance'ın dediği gibi "b must return a value" şeklinde hata veriyor.
doğru cevap şu:
yaptığınız şey c++ standardında adı çokça geçen "undefined behaviour"dur. başınıza her şey gelebilir, compiler'ınızın yükümlülüğü değil hata vermek.
"ben denedim son statement'ı döndürüyor benim derleyicim" demek de doğru değil, sizin bilmediğiniz başka koşullar altında çok başka bir değer de döndürebilir, derleyicinizin dökümantasyonunda açık olarak ne yapılacağı belirtilmemişse.
Son statement'ı döndürmüyor zaten. Bilmediğim bir şey veya bir derleyici özelliği mi diye merak edip sordum.
Teşekkür ederim hepinize.