inflearn logo
강의

Course

Instructor

[MMORPG Game Development with C++ and Unreal Series] Part 1: Introduction to C++ Programming

Operator Overloading #2

연산자에 대한 질문이 있어서 올려봅니다

388

asd8888771554

17 asked

0

연산자 오버로딩 #2 강의에서

Position operator++(int)

{

Position ret=*this;

_x++;

_y++;

return ret;

}

 

이버전과 

 

Position& operator++(int)

{

_x++;

_y++;

return *this;

}

이버전은 실제 차이가 없는게 아닌지 궁금합니다

 

어차피 return으로 리턴값을 받아올때 자기 자신의 주소값을 받아 오는데 *this 던 Position 의 ret에 복사 주소값을 받아오던 별차이가 없는게 아닌지 궁금합니다

아그리고 코딩하면서 생각해봤는데 윗버전은 좀 문제가 있어 보이는데 사실 이게 맞는게 아닌지 의문이 듭니다

Position operator++(int)

{

Position ret=*this;

_x=ret._x++;

_y=ret._y++;

return ret;

}

이렇게 되야 맞는말이 되는거 아닌지 그래야 말이 되는거 아닌가요?

C++

Answer 4

1

asd8888771554

이해 됬습니다 한 30번쯤 돌려보니까 이해 됬네요 ㅋㅋ

 

지금까지 착각하고 있었던게 

int a=0;

a++;

이리하면 a는 1이 되는거여서

만약 a++가

int b = a++;

이런식으로 된다면 지금까지 전 a도 1이고 b도 1인줄 알았는데 이걸 잘못알고 있었네요 ㅠㅠ 

여기서 a는 1되고 b는 a가 1증가하기 전값인 0 이 되는거였는데 이부분을 잘못 이해하고 있어서 계속 이해가 되지 않는거였네요 ㅋㅋ 기초가 부족했던거 같았습니다

0

rlagusdn0086

제가 하려고 했던 질문을 여기서 똑같이 해주셨네요. ㅋㅋㅋ 감사합니다.

0

asd8888771554

흠 이해가 안된당 ㅠㅠ 뭔가 내 머리속 로직이 꼬였다.... ㅠㅠ

0

Rookiss

엄연히 다릅니다.

Position operator++(int)
{

Position ret=*this;
_x++;
_y++;
return ret;
}

이 버전에서는 주소값을 복사하는 개념이 아니라,
임시 객체를 만들어서 x, y 값을 복사해서 반환하고,
원본 객체의 _x _y를 각각 뒤늦게 1 증가시킵니다.
임시 객체와 원본 객체는 각각 다른 _x, _y값을 갖고 있게 됩니다.

Position& operator++(int)
{
 _x++;
_y++;
 return *this;
}

이 버전에서는 원본 객체의 _x, _y를 1 씩 증가시키고
원본 객체를 반환합니다.

 

visualstudio에서 파일분할관리실습시 설정 문의를 드립니다.

0

541

1

정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?

0

441

1

strcpy() 구현 관련 질문

0

513

1

빌드(망치)를 누르니 이런 오류가 떴습니다. 어떻게 해야 하나요?

0

452

1

클래스 타입의 포인터 질문합니다

0

546

1

입력값을 enum 값에 넣어주는거 이제 막혔나요?

0

497

1

템플릿 특수화 관련 질문

0

384

1

포인터 관련 질문합니다!

0

263

1

Unable to start assembler. Check your settings.

0

829

2

cpu선택

0

539

1

포인터 질문이 있습니다

0

322

1

20:35 에서 구조체 크기에 대한 질문입니다!

0

584

1

iterator 삭제관련

0

406

1

함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!

0

310

1

15 분 45초 대 질문

0

308

0

스택 프레임 질문합니다!

2

306

1

오른값 참조 in 게임

0

384

0

동적할당 질문이 있습니다

0

449

1

안녕하세요 메모리에 대해 질문드립니다.

0

304

1

함수객체 의 매개변수

0

358

1

복사생성자

0

434

1

main이나 endl 부분이 주황색으로 표시된건 어떻게 하나요

0

419

1

포인터 실습 강의를 보고 궁금한게 있습니다.

0

353

1

스택 오버플로우

2

790

1