2011-12-27 3 views
0

나는이 질문에 무의미 할 수 있습니다 알고 있지만 난 그냥이 코드 인쇄 (4)를 만드는 것입니다 내가 뭘하려고의 즉 그C++에서 참조로 복사 할 연산자를 어떻게 오버로드 할 수 있습니까?

int a, b=5; 
a = b; 
a = 4; 
cout<<b<<endl; 

처럼 참조로 복사 = 연산자를 사용하는 것이 가능하다 궁금해 의견을 보내 주셔서 감사합니다.

+0

정상적인 참조 만 사용하면 어떤 문제가 있습니까? – DrYap

+0

이것은 C++ 참조를위한 것입니다. –

답변

5

aint으로 이미 선언했기 때문에이 작업을 수행 할 수 없습니다.

a을 참조 (int&) 또는 포인터 (int*)를 b으로 지정하십시오.

+0

그는 = 연산자를 오버로딩하여 수행 할 수 없습니다. –

4

일부 익명의 트릭을 사용하는 맞춤 클래스는 가능할 수 있지만 일반적으로는 이동하지 않습니다. 연산자 오버로딩에 대한 가장 중요한 규칙 중 하나 : 연산자의 의미를 변경하지 마십시오. 예 : +-의 의미를 바꾸지 마십시오. 물론 할 수는 있지만 다른 사람들과 혼자서 혼란스러워 할 것입니다. 조금 후에 코드를 읽으십시오. 당신이 뭘 하려는지

는 포인터 또는 참조를 사용하여 C++에서 수행 할 수 있습니다

int b = 5; 
int &a = b; 
a = 4; 
cout << b << endl; // prints 4 
관련 문제