제대로 이해한것인지 궁금합니다.
356
작성한 질문수 2
5분대부터 헷갈리고 있습니다.
59번째 줄에 killKnight(knight); 가 남아있어서 그런가? 싶은 생각이 듭니다.
1. 59번째 줄 이후로 knight.hp값이 0이 되있는 상태인데
쓰여진 코드를 보면 knight2.hp는 처음부터 0을 참조하는것이 아닌가 싶어서요
62번째 줄의 knight.hp=0을 쓰신 이유를 모르겠습니다
위 생각과는 상관없이 설명만을 토대로 정리할 겸 써보자면
2. 5분대에 있는 61번째 쓴 줄이
C++ 에서는 Knight& knight2 = knight 라고 표현될수 있는 건가요?
3. new를 써서 메모리 할당을 했는데 해제는 안하나요?
답변 3
1
1. 네 knight.hp = 0은 없다고 생각하고 분석해주시기 바랍니다.
2. C++에서 C#으로 넘어올 땐 한가지만 기억하면 편합니다.
C#의 struct는 C++의 struct처럼 복사가 되고,
C#의 class는 C++로 치면 항상 *를 함축하고 있다고 생각하시면 됩니다.
C# : struct Knight -> C++ : Knight 복사
C# : class Knight -> C++ : Knight* or Knight&
struct Knight로 만들고 knight를 다른 변수나 함수 인자로 넘겨주면,
C++ struct와 마찬가지로 그냥 복사가 일어납니다.
class Knight로 만들고 knight를 건내주면,
실제로는 계속 주소값을 넘기면서 원본을 건드리게 됩니다.
1
C++에서 new는 동적 할당의 의미이지만
C#에서는 꼭 그렇지는 않고 오히려 더 단순합니다.
class를 new하면 C++처럼 동적 할당이지만,
struct를 new하면 그냥 스택에서 초기화를 합니다.
0
현재 강의 상에서 knight 와 knight2 사이에KillKnight(knight) 가 있어서 knight.hp=0 인 값을 복사해서 knight2.hp 가 0 이 되는게 맞지요?
0
저도 비슷한 질문이 있어서 댓글 남깁니다.
7:15 에서
knight 와 knight2 가 독립된 객체인것은 이해가 되는데
Knight2.hp = knight.hp;
Knight2.attack = knight.attack;
를 통해 knight.hp 인 "0" 을 참조하여
knight2.hp 도 "0" 이 됩니다.
이렇게 의도하신것이 맞나요?
0
질문이 잘 이해가 안 갑니다.
int는 '참조'하는 개념이 아니기 때문에, 그대로 복사됩니다.
Knight.hp가 100이었다면 knight2.hp = 100이 되는 셈이죠.
Generic에 대한 질문 있습니다.
0
116
2
2022 버전에 커뮤니티 버전이 없는데 2026 버전으로 해도 무관?
0
229
2
다형성 캐시 문제
0
138
3
.
0
78
1
프로퍼티 강의 질문 있습니다.
0
86
1
이후 커리 질문
0
92
1
static
0
104
2
강의에는 새로운 클래스 파일을 생성하면...
0
86
1
생성자의 이름 선언
0
72
1
9:03 Divide(10 , 3) 부분 질문입니다
0
96
1
깃허브 관련 질문 있습니다.
0
252
1
비쥬얼 스튜디오 업데이트가 된건가요..? 매개변수 오류 관련 질문
0
261
1
C# 시리즈 || C++ 시리즈 자료구조 강의에 대한 질문입니다!
0
313
2
Activator 질문있습니다
0
345
1
이넘 타임 선언 질문
0
361
1
Sort 오름차순, 내림차순
0
334
1
질문 있습니다.
0
256
1
팩토리얼 문제
0
278
1
Sort함수 질문있습니다.
0
274
1
다형성 함수 질문 있습니다.
0
231
1
질문이 있습니다.
0
236
1
섹션2 연습문제 질문입니다.
0
224
1
안녕하세요~서버에 대해 질문이 있습니다.
1
290
1
텍스트 색깔이 제 편집기와 달라서 수강에 어려움이 있습니다ㅜㅜ
0
402
1





