강의

멘토링

커뮤니티

Inflearn Community Q&A

zzokki4664803's profile image
zzokki4664803

asked

[MMORPG Game Development Series with C# and Unity] Part 1: Introduction to Basic C# Programming

복사와 참조

Written on

·

134

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;

}

C#

Answer 1

0

Rookiss님의 프로필 이미지
Rookiss
Instructor

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

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

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

zzokki4664803's profile image
zzokki4664803

asked

Ask a question