|
안녕하세요 ^^
꼼지락.수야 입니다. <- 간만에 꼼지락.수야
Call by value와 Call by reference를 질문하신거 같은데요
걍 터보C책에서도 언급되는 내용이랍니다.
Temp 는 SourceRect에 받게되고
Source 는 CopyRect로 받는군요
이 두개를 따로봤을땐 무슨 질문인가 고민했습니다. ㅡㅡㅋ
어떤고민인가하면 잉 렉트는 안써봤는데.. ㅡㅡ
근데 좀 골똘히 보니 알겠군요
그냥 숙제같은 분위기군요 ^^
콜바이 벨류냐 콜바이 레퍼런스냐하는 문제일뿐.. ㅡㅡ
아래 질문에다 리플을 달도록 하죠
행인 님이 쓰신 글 :
: void __fastcall T_Copy::GetRect(RECT * SourceRect, RECT & CopyRect)
: {
: .
: .
: .
: }
:
: void __fastcall ..........
: {
: RECT *Temp = new RECT;
: RECT *Source = new RECT;
:
: T_Copy->GetRect(Temp, *Source);
: }
:
: 여기에서 Temp와 Source를 파라매터로 넣는데 왜 Source에만 *을 붙여주나요?
Source의 받는 인자값이 주소를 기억하는 &값이기때문이랍니다.
: GetRect라는 함수에서 SourceRect를 받아서 그안에서 SourceRect의 값을 수정한다면
: 어짜피 포인터를 받은것이기 때문에 값이 수정이 됩니다. 바로 옆에 CopyRect에서는
: 참조를 사용하였는데 참조를 사용해서 받은 CopyRect의 값이 변환되는거나 마찬가지 아닌가요?
: 음.. 그러겠죠? ㅡㅡㅋ
: 죄송하지만 한가지만 더요. SourceRect는 주소를 파라메터로 하고 CopyRect는 주소를 파라메터로 하는건가요?
: 아니면 값을 파라메터로 하는건가요?
: SourceRect는 Temp의 메모리 주소값이 들어가있겠죠..
CopyRect에도 역시 Source의 메모리 주소값이 들어가있겠죠
뭔가 깨림직한 답변이군요. ㅡㅡㅋ
책을 한번더 훑어보세요.. ㅡㅡㅋ 수야여쑴미다
|