inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

복사(값)와 참조

Clone을 통해서 새로운 객체를 만들어낼때

372

송유승

작성한 질문수 7

4

Knight knight2 = knight.Clone();

을 통해서 새로운객체를 만들어내는것은 이해했습니다.

다만 제가  knight2.hp =0을 안하고 디버깅을 했더니

knight2의 hp, attack 값이 기존 만들어두었던 knight의 값으로 자동으로 설정되더군요 (hp=100, attack=10)

Clone 함수에서 knight.hp=hp, knight.attack=attack 이라고 지정하면 Knight클래스 내부의 변수 값을 가져오는걸로 이해했는데 

public int hp, public int attack 이라고 선언만했지 초기값을 지정해주지 않았습니다.

초기값을 지정해주지 않았는데도 자동으로 값이 채워지는 이유는 무엇인가요?

C#

답변 2

0

송유승

이해됐습니다. 답변 감사합니다!

0

Rookiss

Clone 함수에서 knight.hp=hp, knight.attack=attack 이라고 지정하면
Knight클래스 내부의 변수 값을 가져오는걸로 이해했는데 

-> knight 클래스 내부의 변수 값이라 함은 모호하고
우리가 작업하고 있는 '그' Knight 객체의 값을 꺼내오는 것입니다.
강의 64번 Line에서 만든 '그' Knight 객체가 되는데
knight.hp = 100, knight.attack = 10을 세팅해놓은 상태이니,
그 knight의 정보를 이용해 복사가 되는 것입니다.

즉 위의 knight.hp=hp, knight.attack=attack
에서 hp는 65번 Line에서 채워넣은 hp에,
attack은 66번 Line에서 채워넣은 attack에 해당합니다.

Generic에 대한 질문 있습니다.

0

97

2

2022 버전에 커뮤니티 버전이 없는데 2026 버전으로 해도 무관?

0

203

2

다형성 캐시 문제

0

113

3

.

0

71

1

프로퍼티 강의 질문 있습니다.

0

79

1

이후 커리 질문

0

86

1

static

0

91

2

강의에는 새로운 클래스 파일을 생성하면...

0

72

1

생성자의 이름 선언

0

65

1

9:03 Divide(10 , 3) 부분 질문입니다

0

88

1

깃허브 관련 질문 있습니다.

0

239

1

비쥬얼 스튜디오 업데이트가 된건가요..? 매개변수 오류 관련 질문

0

249

1

C# 시리즈 || C++ 시리즈 자료구조 강의에 대한 질문입니다!

0

306

2

Activator 질문있습니다

0

332

1

이넘 타임 선언 질문

0

346

1

Sort 오름차순, 내림차순

0

323

1

질문 있습니다.

0

249

1

팩토리얼 문제

0

270

1

Sort함수 질문있습니다.

0

265

1

다형성 함수 질문 있습니다.

0

221

1

질문이 있습니다.

0

228

1

섹션2 연습문제 질문입니다.

0

214

1

안녕하세요~서버에 대해 질문이 있습니다.

1

283

1

텍스트 색깔이 제 편집기와 달라서 수강에 어려움이 있습니다ㅜㅜ

0

395

1