이것은 매우 명백한 질문 일 수 있습니다. 나는 내 프로젝트에서 코드 아래에있는포인터 액세스 연산자의 의미를 변경하는 방법
,
#include <stdio.h>
class X
{
public:
int i;
X() : i(0) {};
};
int main(int argc,char *arv[])
{
X *ptr = new X[10];
unsigned index = 5;
cout<<ptr[index].i<<endl;
return 0;
}
질문
은 내가 ptr[index]
의 의미를 변경할 수 있습니까? ptr[a[index]]
의 값을 반환해야하기 때문에 여기서 a는 하위 색인 생성을위한 배열입니다. 기존 소스 코드를 수정하고 싶지 않습니다. 행동을 바꿀 수있는 새로운 기능이 추가되었습니다.
인덱스 연산자가 내 코드에서 너무 많아서 (정확한 536 개) 인덱스 하위 연산자 안에 복잡한 수식이 있으므로 많은 위치에서 코드를 변경하지 않을 것입니다.
PS는 :
1. I 연산자 과부하를 시도하고 불가능 결론에 도달했다.
2. 또한 p [i]는 * (p + i)로 변환됩니다. 나는 기본 연산자 '+'를 재정의 할 수 없다.
그래서 내 이해를 재확인하고 가능한 단축키가 있는지 확인하고 싶습니다.
기타 나는 로얄 방법 모든 코드 줄을 수정해야합니다 :).
Leeeeeek 삭제 [] ptr? – Learner
:) 그래, 죄송합니다. 나는 서둘러 질문을 게시 했으므로 추가하지 않았습니다. :) 다시. –