• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

복사와 참조

20.12.23 13:57 작성 조회수 66

0

강사님 안녕하세요.

c++에서는 매개변수를 참조(포인터)냐 지역으로 어떻게 처리하냐에 따라서 출력결과 값이 달라지는데 

c#에서는 클래스를 동적할당 하기만 하면 매개변수로 들어갈시 컴파일러가 알아서

매개변수를 참조하는 용도로 변경하나요?

//c++코드 

class Knight

{

public:

int hp;

};

void Kill_knight1(Knight knight)

{

knight.hp = 0;

}

void Kill_knight2(Knight& knight)

{

knight.hp = 0;

}

void Kill_knight3(Knight* knight)

{

knight->hp = 0;

}

int main() {

Knight knight;

knight.hp = 100;

Kill_knight1(knight);

cout << "지역 처리" << endl;

cout << knight.hp << endl;

Kill_knight2(knight);

cout << "참조 처리" << endl;

cout << knight.hp << endl;

Knight* knight_alloc = new Knight();

Kill_knight3(knight_alloc);

cout<<"포인터처리" <<endl;

cout << knight_alloc->hp << endl;

return 0;

}

답변 1

답변을 작성해보세요.

0

이전 질문과 동일하므로 링크로 대체합니다.
https://www.inflearn.com/questions/109300

C#에서 class Knight를 사용하면
C++ 기준으로  Knight* 과 같은 포인터(즉 주소값)를
사용하는 것과 동일하게 동작한다!

로 기억해주시면 편합니다.