나는이 질문에 무의미 할 수 있습니다 알고 있지만 난 그냥이 코드 인쇄 (4)를 만드는 것입니다 내가 뭘하려고의 즉 그C++에서 참조로 복사 할 연산자를 어떻게 오버로드 할 수 있습니까?
int a, b=5;
a = b;
a = 4;
cout<<b<<endl;
처럼 참조로 복사 = 연산자를 사용하는 것이 가능하다 궁금해 의견을 보내 주셔서 감사합니다.
나는이 질문에 무의미 할 수 있습니다 알고 있지만 난 그냥이 코드 인쇄 (4)를 만드는 것입니다 내가 뭘하려고의 즉 그C++에서 참조로 복사 할 연산자를 어떻게 오버로드 할 수 있습니까?
int a, b=5;
a = b;
a = 4;
cout<<b<<endl;
처럼 참조로 복사 = 연산자를 사용하는 것이 가능하다 궁금해 의견을 보내 주셔서 감사합니다.
a
을 int
으로 이미 선언했기 때문에이 작업을 수행 할 수 없습니다.
a
을 참조 (int&
) 또는 포인터 (int*
)를 b
으로 지정하십시오.
그는 = 연산자를 오버로딩하여 수행 할 수 없습니다. –
일부 익명의 트릭을 사용하는 맞춤 클래스는 가능할 수 있지만 일반적으로는 이동하지 않습니다. 연산자 오버로딩에 대한 가장 중요한 규칙 중 하나 : 연산자의 의미를 변경하지 마십시오. 예 : +
과 -
의 의미를 바꾸지 마십시오. 물론 할 수는 있지만 다른 사람들과 혼자서 혼란스러워 할 것입니다. 조금 후에 코드를 읽으십시오. 당신이 뭘 하려는지
는 포인터 또는 참조를 사용하여 C++에서 수행 할 수 있습니다
int b = 5;
int &a = b;
a = 4;
cout << b << endl; // prints 4
없음 당신이 그것을 할 수 없습니다. 사용자 정의 클래스를 사용하지 않고 오버로드를 지정하려면 ... http://www.parashift.com/c++-faq-lite/intrinsic-types.html#faq-26.10
정상적인 참조 만 사용하면 어떤 문제가 있습니까? – DrYap
이것은 C++ 참조를위한 것입니다. –