Neden ön artış çalışıyor, ancak artış sonrası bir referans değişkeninde yok?Referans değişkeni üzerindeki işleç artırıcısı
#include <iostream>
void swap(int&, int&);
int main()
{
int x=10, y=20;
int &a=x, &b=y;
swap(++a, ++b); //swap (a++,b++) is not allowed.
printf("%d %d ", a, b);
return 0;
}
void swap(int& x, int& y)
{
x+=2;
y+=3;
}
neden swap(++a, ++b)
izin verilir, ancak swap(a++, b++)
edenler:
[hata] Çeşidi const olmayan referans geçersiz başlatma türü 'int'
Basitlik için, 'main' x' ve 'y' doğrudan kullanmaya çalıştığınızda aynı davranışın gerçekleştiğine dikkat edin. “A” ve “b” referansları sadece problemin olduğundan daha karmaşık görünmesine hizmet eder. –