• Web sitemizin içeriğine ve tüm hizmetlerimize erişim sağlamak için Web sitemize kayıt olmalı ya da giriş yapmalısınız. Web sitemize üye olmak tamamen ücretsizdir.
  • Sohbetokey.com ile canlı okey oynamaya ne dersin? Hem sohbet et, hem mobil okey oyna!
  • Soru mu? Sorun mu? ''Bir Sorum Var?'' sistemimiz aktiftir. Paylaşın beraber çözüm üretelim.

/ C++ ilginç Referans /

Üyelik Tarihi
7 Ocak 2015
Konular
4,091
Mesajlar
4,274
MFC Puanı
40
#include "stdafx.h"
#include <iostream>
using namespace std;
int x; //bu bir global degisken
int& setx(); //iste fantastik referansimiz

int _tmain(int argc, _TCHAR* argv[])
{ int sayi;
cout<<"X icin bir sayi giriniz:"; cin>>sayi;
setx()=sayi; //x'e sayi degerini atar
cout<<"x'in yeni degeri = "<<x;
cout<<"n X icin Yeni bir sayi giriniz:"; cin>>sayi;
setx()=sayi; //x'e sayi degerini atar
cout<<"x'in 2. yeni degeri = "<<x;

getchar();getchar();
return 0;
}
int & setx()
{
return x;
}


bu örneğimdeki

Kod:
int & setx()
{
return x;
}


kısmı bize x i döndürüyor ve aslında sonucumuz:

x= sayi;

gibi bir değer oluşuyor, ama burda referans kullanımı çok önemli. Global olan bir X'e değeri referanslı bir fonksiyonlar atayabiliyoruz..

Peki iyi hoş, sana 2 sorum olacak yazar arkadaşım:
1. Neden bunu kullanayım ki?
2. Neden referans kullandım, burada kullanmasam ne olurdu?

diyen arkadaşlar olabilir..

İlk sorunun cevabı bunu kullandık, çünkü büyük projelerde büyük nesneleri kopyalamak bize hantallık verecektir, ama bunu kullanarak daha performanslı bir program yazabilmiş olacağız.

Gelelim ikinci soruya; burada referans kullanarak kopyalanmasını engelledik; yani yine performans kazandırdık programımıza. Daha önemlisi merak edenler & işaretini kaldırıp referans kullanmazsak ne olur bakabilirler. Hata alacaklardır, çünkü sol tarafa atama yapılırken sol tarafta belirli birşey olması gerekmektedir; yani:

Kod:
setx() = sayi;


kullanımı mümkün degildir.

Sol tarafta belirli birşey olması gerekmektedir..

Umarım faydalı olmuşumdur ...
 
Üst