월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
함수 기초 질문입니다!
반환타입은 무조건 있어야 하고 매개변수는 사용해도, 안해도 상관이 없다고 하셨는데, 혹시 그 이유에 대해서 여쭤볼 수 있을까요? (반환타입을 무조건 사용해야하는 이유와 매개변수를 사용해도 안해도 상관없는 이유)반환타입이 void 일 경우, return은 사용해도 안해도 된다고 하셨습니다. 만약, 반환타입이 int, float, char 등일 경우에는 무조건 return을 사용해야 할까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
CreateMonster함수 질문
1.void CreatMonsters(Statinfo* monsters, int count)로 선언을 했는데 제가 여기서 monsters부분을 monsters[]로하니 오류가 나더군요 오류가 나는이유가 궁금합니다 Statinfo타입의 배열로 만들었는데 그러면 배열로 선언해줘야 하는거 아닌지 궁금합니다2. 1번과 연관된 질문입니다 void CreatMonsters(Statinfo* monsters, int count) 내부에서 랜덤밸류를 설정해서 몬스터의 i번쨰의 데이터를 집어넣는데 함수형식을 보면 Statinfo*라고해서 포인터로 선언했는데 내부 코드를보면 monster[i].hp를 사용하는데 배열관련된 부분은 .으로 접근해서 사용하는건 알겠는데 처음 함수를 선언할때 Statinfo*형식인데 ->로 접근해서 데이터를 변경하는게 맞는거아닌가요? 너무 헷갈립니다 3.EnterBattle(playerinfo,&monsters[index])을 실행할때 이런 모습인데 여기서 EnterBattle은 bool EnterBattle(Statinfo* playerinfo, Statinfo* monsterinfo);이런 모습인데 실행시킬때 &playerinfo가 아닌 그냥 playerinfo인 이유가 Entergame함수에서 인자로 받은 playerinfo가 애초에 주소값이기때문에 그냥 playerinfo로 넣는건가요? 그리고 또 monsters배열에는 &가 붙은이유는 &가없으면 주소값이아닌 그냥 값의 형태기때문에 &를 붙여 주소로 변경해주는건가요??
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터 질문 드려요
영상 초반부에 (p+3)이랑 *(arr+3)이랑 같다고 하셨는데 여기서 이해가 잘 안되는게 왜 +3을해준건가요 int타입이라 4바이트형식이어서3이아니라 한칸당 4바이트로 해서 12를 더해줘야하는거 아닌가요?? 이런저런 내용들이랑 겹쳐서 헷갈리네요
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
이중포인터 질문
처음 const char* msg = "hello";를 선언하고Setmassge(msg)실행해서Setmassage(const char* a){ a = "bye"; }이 코드가 "bye"로 바뀌지 않는 이유가 const타입이라서 *a 를 사용할 수 없어서 바뀌지 않는 건가요? 그래서 a = "bye"라는 문법을 사용한거고 근데 이 문법은 인자로 받은 msg(hello)를 원본을 건드리는게 아닌 대입하는 식이어서 bye의 주소를 대입만하고프로그램이 종료되니 아무 쓸모가 없는게 맞나요? 만약 맞다 하면 이중 포인터도 const 타입인데 어떻게 *a를 사용할수 있는건지 궁금합니다(원본을 건듬) 잘이해가 가지않네요 ㅠㅠ
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
비교연산과 논리연산 질문있습니다.
16:42 에서 헷갈리는것이 있습니다.test가 "죽었는가?(IsDead)"라는 의미의 변수일때,처음에 'isInvincible' 을 'true', 즉 값 1로 설정하였으로, 'isInvincible == false' 이것이 '무적이냐? == 아니다' 로 해석될 때, 사망에 적합한 조건(무적아님)으로 해석이 되므로 그 결과가 1이 나와야 하지만, '1(isInvincible)==0(false)' => '0' 이 되어서 무적이 아님에도 불구하고 사망의 조건('1')에 부합하지 않는다는 해석이 되어버리는데 혹시 제가 잘못 이해하고 있는지 궁금합니다.제 생각에는 isInvincible 변수를 처음에 초기화할때 '0'으로 둔다면 해석으로 보았을떄 정상적으로 작동하지 않을까 싶은데 솔직히 머리도 아프고 잘 모르겠습니다. 제가 잘못 이해하고 있는걸까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
로또번호 질문
강의영상 21:47분쯤에 이미 찾은 값이라고해서 number[i] == randvalue랑 비교하는 조건식이 있는데요 현재 number배열에는 아무것도 들어가있지 않은 상태아닌가요? 코드를 쭉 봤는데 랜덤수를 넣어주는 곳이 없어서 도대체 무엇이랑 비교를 하는건가요??다른 부분은 다 이해되는데 지금 로또번호가 이해가 안됩니다.. ㅠ 그리고 하나더 int randomvalue = 1 + (rand() % 45); 를해서이 randomvalue를 number[i]에 for문으로 6번넣어서 출력을 할려했는데(중복 생각안하고)근데 출력이 안됩니다 이게 계속 그래서 뭐가 문젠지 몰라서 제가 변수를 지우고 그냥 number[i]에number[i] = 1 + (rand() % 45);를 직접적으로 대입해주니 출력이 잘 됐습니다 혹시 그 이유를 여쭤봐도 될까요??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
Sort함수
제가 처음 강의를 보지 않고 만들었을때에는 void Sort(int numbers[], int count){ for (int i = 0; i < count; i++) { for (int j = 0; j < count; j++) { if (numbers[i] < numbers[j]) { int temp = numbers[i]; numbers[i] = numbers[j]; numbers[j] = temp; } } }이런식으로 만들었는데요 혹시 정상적으론 동작하는데 꼭 강의에 나와있는대로 만드는게 어떤 좋은 부분이 있을까요??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터vs배열 질문있습니다
제가 이해한게 정확한지 궁금해서 그러는데요예를들어 배열로 char[] a = "abcef";를 만들어 줬다고하면배열은 모든 문자를 한글자씩 밀어넣는다고 하면 char이 1바이트니까 제가 만든 배열은 NULL값도 포함해서 총 6바이트가 되는게 맞는건지 궁금하고요 만약 맞다면 그러면 int타입의 배열로 선언하면 예를 들어 char[] b = {1, 3, 4}로 선언하면 int는 4바이트니까 총 NULL값까지 16바이트의 크기가 되는건가요? 그리고 포인터는 32비트 혹은 64비트냐에 따라 무조건 4바이트 혹은 8바이트 고정크기인데이유는 포인터를 이용해서 문자열을 만들면 예를들어 "Hello World"를 넣는다고하면 먼저 데이터 영역 어딘가에 Hello World의 배열이 만들어지고 그 배열 첫번째 요소인 H의 주소를 가리키는 포인터다라고 해석했는데 맞을까요??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
배열에서 참조부분 질문드립니다
Statinfo& monster_2 = *(monsters + 2); monster_2.hp = 300; monster_2.attack = 6; monster_2.defence = 2; 이 부분에서 왜 포인터와 달리 *을 사용해야하는건지 이해가잘 안갑니다 포인터는 주소를 담는 바구니이니 monster + n만해도 되는거는 이해가 가는데참조가 이해가 잘 안갑니다 너무 헷갈리네요 혹시 다시 설명 해주실 수 있으실까요?? 주소를 참조하는 개념이 아닌가요??
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터 관련
인터넷을 찾았을 때 굉장히 헷갈리는 부분이 있는데예시로 int* a = &b;에서포인터 a는 b의 주소를 가리킨다라는 설명도 있고포인터 a는 b를 가리킨다라는 설명도 있는데둘 중에 어떤 것이 맞는 설명인가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
다형성과 가상함수
안녕하세요. 다형성 챕터 강의 완강하고 제가 수업을 듣고 개념을 제대로 이해한 것이 맞는지 궁금해서 질문 올립니다.1. 정적바인딩은 컴파일시 결정된다. 모든 함수는 정적바인딩.Knight k;MovePlayer(&k);void MovePlayer(Player* player){player->Move(); // Move Player!}이 함수가 매개변수로 최상위 클래스 타입의 포인터를 매개변수로 받고 있기에 함수 입장에서 컴파일시 Move함수가 최상위 클래스의 Move함수로 인식하기 때문에 이런 현상이 일어나는 것 인가요?2. 동적바인딩은 런타임시 결정된다. 동적바인딩(가상함수)으로 함수를 설정하고 싶으면 virtual 키워드를 함수앞에 사용. 클래스 내에 가상함수가 있다면, 그 클래스를 생성할때 그 클래스주소 (offset 0)에 vftable 주소가 들어감, vftable에는 가상함수로 지정한 함수들의 주소가 있다. 이 vftable로 인해 최상위 객체로 관리하는 함수에서 파생클래스의 주소를 넘겨주어도 알아서 재정의된 가상함수를 찾아서 실행해 준다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
질문있습니다.
안녕하세요. 질문 1.실무에서int number = 1; int* pointer = &number;*pointer = 1;둘 중 어느 형식을 많이 쓰나요? 질문 2.실제 포인터를 매개변수로 담는 함수와레퍼런스를 매개변수로 담는 함수 중 실무에서 무엇을 더 많이 쓰나요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
temp질문
제가 이해하고있는게 맞나해서 강의 듣고 질문드립니다EnterLobby()함수에서Statinfo player라는 지역변수를 할당하고그 player라는 값안에다가 CreatePlayer()의 값을 넣는데 여기서 CreatePlayer()함수의 내부코드는마찬가지로 지역변수 ret생성후 ret.hp.. 이렇게 값을 할당해서 그값들을 리턴해주는데 그 리턴되는 값들이 바로 player값에 들어가는게 아니라 EnterLobby()함수에 지역변수(player와 temp?라는 메모장같은 변수가 있다고 할때)ret값이 temp에 옮겨지고 그 temp값이 player로 들어가는 과정이 맞는지 질문드립니다temp가 생성되는 이유하고 시점을 모르겠어서 정확히 이해한건지 모르겠네요그리고 또 하나 질문이 있는데temp라는건 저희가 알아듣기 편하게 임의로 지정한 변수 이름인건가요? 사실상 스택프레임의 할당된 어느 구역일 뿐인지 궁금합니다
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
팩토리얼 함수 질문
처음 메인함수에서 factorial(5)를 실행하면팩토리얼 함수로 들어가서 return을 n * factorial(n - 1)이잖아요 그러면5 * factorial(4)니까 함수가 다시실행되서5 * 4 * factorial(3)이런식으로 계속 호출 되는건가요?그리고 리턴값이 왜 120이 나오는지 조금 헷갈립니다 처음factorial(5)를하면 5 * factorial(4)일텐데 이값을 리턴해주는게 아니고 또다시 함수가 호출되는거같은데 혹시 리턴값이왜 120이 나오는지 설명해주실 수 있으실까요 ㅠ
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
매개변수랑 리턴주소 질문
영상에 매개변수랑 리턴주소는 이전함수가 세팅을 해준다고했는데 이게 도저히 무슨말인지 이해가 안갑니다처음 main함수가 스택프레임에 매개변수,리턴값,지역변수 이렇게 할당되고 메인함수안에서 또다른 함수가 실행되면 또 3종세트가 할당되는건 알겠는데 이전함수가 세팅을 해준다는게 무슨의미인가요??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
rsp값에 대해
강의 마지막 부분을 보면 add rsp, 16을 한뒤에pop rbxpop rax를 하셨는데요, 이과정에서 실질적으로 push 5, 2가 pop이 되지 않았는데도정상적으로 rbx에 값이 이전에 push했던 값으로 돌아오는것을확인 하였습니다. 그렇다면 현재 stack에 Top에 해당하는 주소값은 사실상 rsp라고 생각 되는데 맞는건지 궁금해서 질문 드립니다.
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
가위바위보 질문(부동소수점 예외 코어덤프됨)
이렇게 뜨면서 승률이 안나오는데이문제가 나누기할때 0으로 나눠서 나오는 문제인걸로 아는데처음에 바로 실행하면 현재승률 없음이나오고 다음 가위바위보를하면 토탈에 값이 0이어서 그런거같은데 이부분을 어떻게 해결하면 좋을까요??
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
별찍기 질문드려요
강의영상 8:40분쯤에 i + 1로 변경해서 쭉 출력이되었는데이 부분이 이해가 잘 안됩니다 그 이유가 처음 초기값이j = 0이고 i = 0인데 j변수 for문에서 j < i + 1을하면0 < 0 + 1 즉 0 < 1이 되어서 한번실행되고 j++를 해주고 다시 처음 for문으로 와서 i++가 되어있는데 그럼 다시j변수 for문에서 1 < 1 + 1이 될텐데 그럼 1 < 2인데 별 찍는 코드가 그럼 한번만 실행되는거 아닌가요? 2보다 작은 동안이니까 한번 실행되는거 같은데 왜 아닌지 궁금합니다
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
생성자에서 new를 하는 건 안 좋은 습관이라고 하셨는데 그 이유가 무엇인가요?
얕은 복사 vs 깊은 복사 #1 15:50에서 생성자 안에서 new를 하는 건 안 좋은 습관이라고 하셨는데 그 이유가 무엇인가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
암시적 생성자 관련
암시적 복사 생성자는 암시적 기본 생성자와는 달리 명시적으로 기타 생성자를 만들어도 그대로 작동이 잘 되는 것 같은데문법 상으로 원래 이런 것인가요?그리고 다른 객체들의 경우 return 0; 이후에 소멸자를 호출하고 있지만Knight k5;k5 = (Knight)1;의 k5는return 0; 이전에 소멸자가 호출되는 것 같은데 이유가 무엇인가요?