독립적 인 참조가 존재하고 앨리어싱처럼 작동하는 좋은 C++ 튜토리얼을 읽었습니다. 그러나 ... 그것이 무엇을 위해 만들어 졌는지 궁금합니다. 왜 앨리어싱을 사용해야할까요?C++ 독립 참조 - 무엇을 위해?
게다가, 나에게 명확하지 않다 코드의 일부 조각 :
int a;
int &ref = a; // independent reference
int b = 19;
ref = b;
cout << a << " " << ref << "\n";
ref--;
cout << a << " " << ref << "\n";
첫째, 심판은에 '참조'입니다. 필자는 ref의 주소 (따라서 앰퍼스 헤드)가 다음과 같은 두 번째 코드 줄에서 알 수 있습니다. 그런 다음 정수 ref에 b (19) 값이 할당됩니다. 첫 번째 cout은 a와 ref를 반환하며 둘 다 19와 같습니다. 왜? 정수가 ref의 주소가 아닌가? 그런 다음 ref를 감소시키고 마지막 cout은 두 번을줍니다 18. a와 ref는 감소합니다.
수수께끼에 대한 이상한 해석이 있습니다 : 여기 int & 자체는 하나의 유형이며, '정수에 대한 독립적 인 참조'이며이 유형은 앨리어싱을 의미합니다. 그러면 당신이 심판하기 위해 무엇을 하든지, 같은 일이 행해진 다.
맞습니까? 하지만 왜 앨리어싱이 필요합니까?
참조는 임시 포인터의 수명 연장에 대한 특별한 규칙을 제외하고는 'const'포인터와 같이 작동합니다. –
@BenVoigt : null이 아니며, 더 좋은 사용법이 보장됩니다. ..., –
@BenVoigt - thx, 업데이트 – Attila