저는 여가 시간에 C++에 대해 배우고 있으며 하위 클래스/[]
연산자를 오버로드하는 클래스를 구현하고 있습니다.연산자 오버로드 컨텍스트 특정 만들기
myObject[i,j,...]
, 인수가 예를 들어 string
의 또는 int
의
내가 볼 수 있습니다 : 지금, 나는 첨자 연산자를 다음과 같이 (쉼표로 구분)에 두 개 이상의 인수를 전달 할 수 있기를 원 C++에서는 subscript 연산자가 하나 이상의 인수를 허용하지 않는다. 그러나 '문제'에 대한 대안으로 this thread에 쉼표 연산자를 오버로드하는 방법에 대해 읽었습니다.
예에서 쉼표 연산자는 두 개의 사용자 지정 Enum
과 함께 매우 구체적인 서명을 사용하여 오버로드되지만 일반적인 유형 쌍에 대해 쉼표 연산자를 오버로드하는 것은 좋지 않습니다. 케이스).
C++에 대한 제한된 지식으로 인해 '범위'또는 쉼표 연산자 오버로드를 특정 상황이나 상황 (예 : 첨자 연산자에서만 사용)으로 제한 할 수 있는지 여부가 궁금합니다. 과부하 정의, 다른 곳에서는 간섭을 일으키지 않고 관심있는 기능을 제공합니다.
이것은 멋집니다! 고마워. 따라서 네임 스페이스를 사용하여 이론적으로 예를 들어 'std :: pair 연산자, (int lhs, int rhs) {return {lhs, rhs}; }'그 범위 내에서, 쉼표 연산자의 다른 용도를 망가 뜨리지 않고, 그 범위 밖에서, 맞습니까? –
TBZ92
'연산자,'클래스 또는 열거 형의 매개 변수가 하나 이상 있어야합니다. 'int' /'int'는 불법입니다. – Jarod42