c++ ile ilgili bir soru soracağım.
kodda fillerin olduğu yere dikkat edelim. ilk fonksiyonda & yok ve sayıları doğrusuyla ekrana veriyor. İkinci filli fonksiyonda & var ve sayları 1 arttırıp ekrana yazdırıyor.
Bu kodun çıktısı aşağıdaki gibi:
100
36
9
5

100
36
10
6

Şimdi, bu & işareti neden 1 arttıyor verilen sayıları? Fonksiyon içindeki +1 yazılanı mı katıyor, neden?

#include

class Test
{
private:
int sayi;
public:
Test(int n) { sayi = n; } //const
int Deger() { return sayi; }
};

int Kare(Test 🐘t1)
{
t1 = Test(t1.Deger() + 1);
return t1.Deger() * t1.Deger();
}

int Kare2(Test 🐘&t1)
{
t1 = Test(t1.Deger() + 1);
return t1.Deger() * t1.Deger();
}

int main(int argc, char const *argv[])
{
Test t1(9), t2(5);

std::cout << Kare(t1) << "\n";
std::cout << Kare(t2) << "\n";
std::cout << t1.Deger() << "\n";
std::cout << t2.Deger() << "\n";

std::cout << Kare2(t1) << "\n";
std::cout << Kare2(t2) << "\n";
std::cout << t1.Deger() << "\n";
std::cout << t2.Deger() << "\n";

return 0;
}

BeğenFavori PaylaşYorum yap