내가 INT 주위의 래퍼 클래스 (지금은) 매우 간단한을 개발하기 위해 노력하고있어, 다음과 같이 달성하기 위해 = 연산자를 오버로드 기대했다 :C++ 래퍼 = 연산자
class IntWrapper
{
...
private:
int val;
}
int main ()
{
IntWrapper a;
int b;
a = 5; // uses overloaded = to implement setter
b = a; // uses overloaded = to implement getter
}
을
그러나 나는 이것을 할 수 없다는 것을 모았습니다. 세터를 구현하는 것은 매우 간단합니다, 뭔가 같은 :
class IntWrapper
{
...
IntWrapper& operator = (int rhs) { this.val = rhs; return *this; }
...
}
그러나, 나는 수집하고있어 인터넷 검색의 비트에서이 방법으로 게터을 할 수있는 방법은 없습니다. 우리가 이해할 수있는 것은 = 연산자가 을 변수에 할당하기 위해서만 재정의 될 수 있고, 은 기본 구현 인 =을 무시할 수 없기 때문입니다. 이 올바른지? 그렇지 않다면 어떻게 getter를 작성해야합니까?
그게 맞을 경우 누구에게도 비슷한 비슷한 제안이 있습니까? 그 꽤 의미가 보이지만 간단한 GETVAL() 방법보다 자사의 거의 더 나은로, 나에게
class IntWrapper
{
...
operator int() { return this.val; }
...
}
int main ()
{
...
b = (int) a;
...
}
: 내가 찾을 수있는 가장 가까운이 변환 연산자를 오버로딩이다.
의견을 보내 주셔서 감사합니다.