2013-03-13 10 views
10

Çünkü eğerArgand ve "&", argümanı referans olarak gönderirken nereye konabilir? Ben aşağıdaki sözdizimine bakın sahip kodunda</p> <pre><code>void AddOne(int &y) </code></pre> <p>: bu savların şu şekilde referans olarak geçirildi gördüğümüz örneklerde

void AddOne(int& y) 

acaba aynı ya da ikinci durum, birinciden birinden farklıdır.

+6

C++ cinsinden boşluklar önemli değil. İsterseniz AddOne (int & y) 'yi geçersiz kılabilirsiniz. – chris

+2

@chris: Bu tam olarak doğru değil. "unsignedint" ve "unsigned int", farklı belirteç dizileridir. Ancak bu soruda gösterilen kod, belirteçlerde farklı değil. –

+1

Değeri için, ikinci seçeneğin daha net olduğunu düşünüyorum; 'int' '' nin türündedir. – JSQuareD

cevap

17

, dil için aynı. Hiç fark yok. Önemli olan

Tüm &tip ve değişken isim arasında olması gerektiğidir. Mekanlar önemli değil.

Yani

void AddOne(int& y); 
void AddOne(int &y); 
void AddOne(int & y) 
void AddOne(int &  y); 
void AddOne(int&y); 

aynı! Gerçek belirteçleri arasında boşlukların atılır olarak

+3

yanı sıra int & y (boşluk yok). –

+1

@BenVoigt: Yup. – Nawaz

2

Bu ikisi de tam olarak aynı sadece farklı kod konvansiyonlar

0

,

void AddOne(int &y); 

ve

void AddOne(int& y); 

ve C++ da

void AddOne(int&y); 

arasında hiçbir fark yoktur.

İlgili konular