// The following operator++() represents overloading of pre-increment
MyIncrDecrClass& operator++()
{
++this->m_nCounter;
return *this;
}
// Passing dummy int argument is to mention overloading of post-increment
MyIncrDecrClass& operator++(int)
{
this->m_nCounter++;
return *this;
}
그래서이 포스트 및 사전 증가 연산자를 구현하는 방법이지만, 내 경우에는 정말 그런 식으로 그것을 구현할 수 없습니다, 그래서 이것은 내가 무슨 짓을 : 아무 잘못이사후 증가 과부하의 중복?
VLongInt& VLongInt::operator++()
{
... //BUILD TEMP vector
this->vec = temp;
return *this;
}
VLongInt& VLongInt::operator++(int)
{
this->vec = this.vec; //seems unnecessary
... //BUILD TEMP vector
this->vec = temp
return *this;
}
있는가 ? 두 가지 모두 같은 방식으로 구현되어야합니다. 헤더 파일 만 달라야합니다. 맞습니까?
는 소리가 난다. 이것은보다 편리하게 http://codereview.stackexchange.com/ –
에 적합 할 수 있습니다. 이것은 모두 증가 연산자가 클래스를 나타 내기를 원하는 대상에 따라 다릅니다. 그러나 그것은 나에게 잘못된 것처럼 보입니다 - 당신의 논쟁은 어느 쪽의 방식 으로든 수정되어야합니다. 그러나 어떤 경우에는 수정 된 버전이 아니라 원래의 것을 돌려 주어야합니다. 그리고 함수 서명을 구별하지 않습니다. 컴파일도 할 수 있습니까? – Floris
두 번째 코드 블록에서는 동일한 이름, 반환 형식 및 매개 변수를 가진 두 개의 함수를 작성했습니다. 어쩌면 나는 C++에 대해 충분히 알지 못하지만, 컴파일러는 어떻게이 두 정의를 구별 할 것인가? –