할당이 첫 번째 경우에 작동하면 두 번째 경우에도 논리적으로 작동해야 합니다. 첫 번째 경우에는 동일한 rvalue가 포인터에 할당되지만 연산자가 작동하기 때문입니다!
물론 이것은 전적으로 제 생각입니다. 그러나 사냥을 이해하려면.
rvalue는 왼쪽 값에만 할당하거나 임시 상수일 수 있습니다.
플러스 측면에서 작동하는 것은 다음과 같습니다.
class A
{
public :
int m[ 10 ];
int & operator [] ( constint i)
{
return ((m[i]));
}
};
int main()
{
A oA;
oA[ 2 ] = 5 ;
}
그러나 이것은 아닙니다.
class A
{
public :
int* m[ 10 ];
int * operator [] ( constint i)
{
return ((m[i]));
}
};
int main()
{
A oA;
oA[ 2 ] = newint ; // error C2106: =: левый операнд должен быть левосторонним значением
}
내가 바보. 왜 불가능한지 말해주세요?
이해했다.
설명하다
설명하다
this[0]은 rvalue입니다.
이것은 명확하지 않습니다.
할당이 첫 번째 경우에 작동하면 두 번째 경우에도 논리적으로 작동해야 합니다. 첫 번째 경우에는 동일한 rvalue가 포인터에 할당되지만 연산자가 작동하기 때문입니다!
이것은 물론 전적으로 제 생각입니다. 그러나 사냥을 이해하려면.
이것은 명확하지 않습니다.
나에게도 명확하지 않습니다. ))업데이트. 그것은 이미 분명합니다.
할당이 첫 번째 경우에 작동하면 두 번째 경우에도 논리적으로 작동해야 합니다. 첫 번째 경우에는 동일한 rvalue가 포인터에 할당되지만 연산자가 작동하기 때문입니다!
물론 이것은 전적으로 제 생각입니다. 그러나 사냥을 이해하려면.
rvalue는 왼쪽 값에만 할당하거나 임시 상수일 수 있습니다.
플러스 측면에서 작동하는 것은 다음과 같습니다.
그러나 이것은 아닙니다.
그러나 이것은 그렇지 않으며, 나는 무언가를 따라잡을 수 없습니다. 차이점은 무엇입니까?
인덱스에 링크를 추가하면 작동합니다. 또는 이중 포인터.
오, 나는 속도를 늦추고 있어, 두 번째 예는 일반적으로 틀리다
따라서 논리적입니다.
오류: 'int*' 유형의 rvalue에서 'int*&' 유형의 비 const 참조 초기화가 잘못되었습니다.