는 I이 클래스 우연히 :이 연산자 [] 오버로딩은 어떻게 작동합니까?
클래스 배열과 X, Y, Z 값에 접근하도록 [] 사용class Vec3f
{
...
float x, y, z;
...
};
inline float operator[](const int index) const
{
return (&x)[index];
}
inline float& operator[](const int index)
{
return (&x)[index];
}
그 V [0] X의 값이, V의 [그래서 1]은 y의 값이고, v [2]는 z의 값이지만,
- return 문은 어떻게 작동합니까?
- "x 주소에서 시작하는 인덱스로 지정된 주소에서 값 가져 오기"와 같이 읽는 것이 맞습니까?
- Do (& x)는 괄호 안에 있어야하며, 그렇지 않으면 x [index]의 주소 값을 반환합니다. 그렇지 않습니까?
가이 코드는 방법에 의존 특정 컴파일러가 작동합니다. 기술적으로 이것은 유효한 코드가 아닙니다. –