struct A {
int &r;
A (int &i) : r(i) {}
void foo() const {
r = 5; // <--- ok
}
};
컴파일러는 r = 5;
에 오류를 생성하지 않습니다.
&r
은 이미 입니다. const-correct은 참조 (논리적으로는 int* const
)입니까? [여기에 related 질문이 하나 있습니다.]클래스 멤버 참조 변수에는 내장 된 "const-correctness"가 있습니까?
const 정확성이 '* this'가 아닌 멤버에 적용된 이후로 나는 참조 된 객체 만 수정했으나 참조 자체는 수정하지 않았습니다. 당신이 포인터 케이스와 비슷하게 지적했듯이. – RedX
@ Justin : 네. 그 생성자는 A (int & i) 여야합니다. –
... 내장 된 const-incorrectness와 비슷하지만 묻는 사람에 따라 달라집니다. –