-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
복사와 참조
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;
}
답변을 작성해보세요.
0
Rookiss
지식공유자2020.12.23
이전 질문과 동일하므로 링크로 대체합니다.
https://www.inflearn.com/questions/109300
C#에서 class Knight를 사용하면
C++ 기준으로 Knight* 과 같은 포인터(즉 주소값)를
사용하는 것과 동일하게 동작한다!
로 기억해주시면 편합니다.
답변 1