는 우리가 생각하는 예상 값이 20, 될 것입니다, 문 b = a++ + a++
에 대한 코드++ 오버로드 된 연산의 결과가 왜 제거되지 않은 값이 되는가?
#include<iostream.h>
#include<conio.h>
class A{
private:
int i;
public:
A()
{
i=10;
}
A operator++(int)
{
A tmp=*this;
i +=1;
return tmp;
}
display()
{
cout<<i;
}
};
int main()
{
A a,b;
b=a++ + a++;
cout<<endl<<b<<"\t"<<a;
return 0;
}
를 참조하지만, 위의 문장은
방법 (21)으로의 결과
친절하게 도와주세요.
간단한 예를 제공해주십시오. 당신이 가진 것은 컴파일되지 않습니다. – jrok
방금 시도한 것이거나 실제 제품 코드에서 의미가 있습니까?제품 코드의 경우에는 이것을 사용하지 않기를 바랍니다. 읽기 쉽기 때문에. – RvdK
사람들은 왜 그런 말도 안되는 문장을 아직도 이해하려고합니까? 그들 중 일부는 정의되지 않은 행동이 아니지만 여전히 : 읽기 쉽지 않으며 -이 경우처럼 직감이 대부분 잘못되었습니다. 멈춰! – stefan