월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
디버깅시
안녕하세요 시간 21:25 디버깅시 저는 자동칸에 들어가도 이름이 total , winPErcentage, wins가 자동으로 안뜨더라구요. 세팅을 어떻게 해주어야 자동으로 변수들이 입력된 것을 볼 수 있는지 알 수 있을까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
Game 객체는 왜 stack 영역에 만들었나요?
Game도 어찌됐든 객체인데 스택에 만들어주는 이유가 있나요? Game 객체의 크기가 커지는 경우 stack overflow가 발생하진 않나요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터 멤버 변수
class Game { public: private: Player _player; Player* _player; }; 클래스 멤버 변수로 포인터가 아닌 일반 객체를 선언해서 들고 있을 경우 발생하는 문제점(?) 혹은 한계에 대해 질문이 있습니다. 첫째, 일반 객체에 추후 knight, archer 등등 다른 캐릭터 타입을 _player에 할당할 경우 자식 클래스의 데이터가 더 크기 때문에 데이터 소실이 발생할거라고 설명을 해주셨습니다.그런데 이 문제는 포인터로 선언해서 들고 있는 클래스 변수에도 동일하게 나타나는 문제가 아닌가요? 강의를 듣고 이해하기로는 포인터가 아닌 일반 클래스 타입 객체를 사용할때만 이 문제가 발생하는 것으로 이해가 되는데 제가 잘못 이해한 부분이 있을까요? 둘째, 포인터 변수와 일반 클래스 변수와의 명백한 차이는 Game 클래스 자체적으로 들고 있어야 하는 데이터 양이 크기인데 포인터의 경우(4 or 8 byte)로 국한되지만 일반 클래스 변수의 경우 해당 멤버 클래스의 크기만큼 Game 클래스에서 복사되어 들고 있어야 한다. 멤버 변수로 포인터가 아닌 일반 클래스 변수를 들고 있을 경우 발생하는 한계점에 대해 '두번째'로 언급한 내용에 대해서는 이해가 됩니다. 하지만 첫번째 내용이 명확히 이해가 되지 않습니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
부모클래스 = 자식클래스 부분이 잘 이해가 안갑니다ㅏㅏ
(ex. Dog dog = bulldog ) 개념적으로 Dog이 큰거고 bulldog이 작기 때문에 큰 Dog안에 bulldog을 대입하는게 가능하고 bulldog에 Dog을 대입하는거는 형변환이 필요하다. 개념적으로는 이해가 가지만..... (ex. BullDog bulldog = dog ) dog는 의 멤버변수는 2개고 bulldog의 멤버변수는 상속받아서 3개 잖아요 그래서 dog는 size가 8byte 이고 bulldog은 size가 12byte라고 했을 때 작은바구니(dog)에 큰 데이터(bulldog)을 넣는게 왜 성립되는지 이해가 안갑니다. (ex. Dog dog = bulldog ) 오히려 큰바구니에 작은 데이터를 넣는게 자연스럽지 않나요? (ex. BullDog bulldog = dog )
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
bool IsDead 반환값
안녕하세요! 선생님이 작성하신 bool IsDead 함수에서 반환값 부분이 이해가 잘 안 돼서 질문드립니다 먼저 저는 아래와 같이 코드를 짰습니다 bool IsDead() { if (m_hp <= 0) return true; return false; } 선생님께서는 bool IsDead() { return _hp <= 0; } 와 같이 return true, false 상황을 나누지 않고 바로 원하는 조건을 return하셨던데, 이 부분이 문법이 바로 와닿지가 않아서요. 제가 작성한 코드를 간략화하면 선생님 코드와 결국 같은 의미인걸로 이해하긴 했는데 맞나요?? bool 함수를 쓸 때 참/거짓 상황을 나눌 필요없이 true인 상황을 바로 return하면 되는건가요? 그리고 한 가지 더 궁금한게 있습니다 if (_monster->IsDead() == true) 이 코드와 if (_monster->IsDead()) 이 코드는 완전히 똑같은건가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
그래서 결국 클래스 내부의 _hp는 따로 캡처를 못하는건가요?
영상 마지막에 this를 캡처하게되면 어떻게되는지 잘 이해를 했습니다. 근데 결국 클래스내부에서 _hp만 캡처하여 사용하는방법은 없는건가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
문자열 출력
1. const char* 형은 포인터로 주소를 담는 것인데, const char* a = "hello" 라고 하였을때 h , e , l, l , o 모두 각기 다른 메모리에 저장되어 있을 것인데 이때 포인터가 해당 메모리들을 전부 저장하는 건가요? 첫번째 주소만을 저장한다고 한다면, a를 출력할때 h만 나와야하는게 아닌가요? 정확히는 h의 주소가 출력되어야 하는게 아닌가요? 2. char b[] = "hello" 배열의 이름은 배열의 첫번째 주소값을 저장하고 있다고 했는데 char형은 어째서 주소가 아닌 값을 내뱉는건가요? 3. 배열은 매개변수로 넘겨줄때 왜 포인터로 넘겨지나요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
함수객체가 굳이 필요한가요??
함수 객체를 가만 보아하니 예를 들어 Knight클래스가있다하면 MoveTask같은 클래스 말고 그냥 Knight 클래스안에 플레이어의 좌표를 넣어놓고 move메소드같은것도 하나 만들어두고 Knight에서 꺼내쓰면 되지않을까 라는 생각이 듭니다 함수 포인터는 되게 좋구나 라는 생각을 했는데 함수객체는 띠용? 하는 느낌이좀 드네요 혹시 생각을 잘못하고 있는걸까요??
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
조사식 관련
64비트 운영체제 환경에서는 모든 기본 단위나 주소 체계 등이 64비트라고 하셨었는데 조사식에서 esp는 출력이 되지만 rsp의 경우에는 '식별자 "rsp"이(가) 정의되어있지 않습니다' 라고 나오는데 왜 그런 것인지 궁금합니다.. 그리고 조사식에 esp를 입력했을 때 형식은 unsigned int로 동일하게 나오지만 값이 강의와는 다르게 16진수가 아닌 10진수로 출력되는데 바꿀 수 있는 방법이 있을지도 알고 싶습니다(&c 등은 16진수로 출력됩니다)
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
연산자 오버로딩을 하지 않았는데 = 는 왜 작동하는건가요?
posA = posB; 가 실행되려면 미리 연산자 오버로딩을 해야하는거 아닌가 싶어서요!
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
헤더파일과 스마트포인터
루키스님, 1강 강의를 다 듣고 배운 문법들을 최대한 사용해서 TextRPG를 만들려고 하는 중입니다. 전에 헤더파일에는 최대한 include를 지양해야 한다고 하셨는데 위의 사진과 같이 스마트 포인터를 사용하려면 어쩔수 없이 include를 해야하나요? 아니면 다른 방법이 있을까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
연산자 오버로딩 궁금한 부분이 있습니다.
강의 내용중 Knight에 연산자 오버로딩을 전역함수 버전으로 만드셔서동작하는 모습을 보여주셧는데 class Knight { public : // ... ostream& operator <<(ostream& os) { os << _hp; return os; } public: int _hp = 100; }; Knight 클래스 내에서 << 연산자 오버 로딩을 만들면 허용되는 변환이 아니라고 하는데 이유를 모르겠습니다.<< 연산자 오버 로딩은 전역함수로 밖에 선언이 안되는 건가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
커리큘럼 문의
안녕하세요. 수강 순서에 대해 문의 드릴 것이 있어 질문 드립니다. 퍼즐 게임을 만들면서 part1을 수강중입니다. part 1 -> 언리얼 입문 -> part 3 -> part 2 -> part 4 순으로 수강 하려고합니다. 수강 순서를 고민하던 중에 자료구조와 알고리즘을 part3에 배치 하신 이유가 궁금해서 질문 드립니다. 감사합니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
상속 접근 지정자 질문드립니다
{} class SuperCar : private Car { public: void PushRemoteControl() {} } class TestSuperCar : private SuperCar {} int main() { TestSuperCar TSC; TSC.PushRemoteControl(); -----> Error } 위 코드의 main함수에서 TSC객체를 통해 PushRemoteControl을 접근할 수 없다고 강의중에 설명해주셨는데요 TestSuperCar 클래스가 SuperCar 클래스를 private로 상속받아도 지금 당장은 TSC객체를 통해 PushRemoteControl함수를 접근 할 수 있어야 하는게 아닌가요? private상속을 제대로 이해한게 맞다면 TestSuperCar를 상속받는 다음 클래스에서는 모든 접근 권한이 private이 되기 때문에 PushRemoteControl을 사용하지 못해야 할 것 같은데 그렇지 않은 이유가 뭔가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
RIP 레지스터
안녕하세요 다름이 아니라 rip 레지스터에 대해서 궁금한 게 있는데 rip 레지스터의 정의에 대해서 검색을 하니 1. 현재 수행 중인 명령의 주소를 가리키는 레지스터 2. 다음 수행 명령의 주소를 가리키는 레지스터로 나와있는데 2가지 의미가 동일한 의미인 것인가요? 아무리 생각해도 1번과 2번이 동일한 의미로 생각되지가 않습니다...
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
STL(list) 중간 삽입/삭제, 임의접근 질문
안녕하세요 선생님! 강의 잘 보고있습니다. 임의접근하고 중간 삽입/삭제가 데이터를 찾는 것은 똑같은 데 중간 삽입/삭제가 빠르다고 하신 이유가 데이터를 하나씩 찾는 과정은 임의접근의 과정이고 데이터를 삭제하고 next,prev 값만 바꿔주는 과정이 중간 삽입/삭제 과정이기 때문에 중간 삽입/삭제가 빠르다고 할 수 있는 건가요?
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
유효범위의 의미가
시간적인 의미인가요, 아니면 공간적인 의미인가요? 꿈이 유효한 동안에는 그 꿈을 유지시켜야 한다라는 항목에서는 시간적인 의미로 이해가 되었고 꿈에서도 또 꿈을 꿀 수 있다는 것을 고려해야 한다라는 항목에서는 공간적인 의미로 이해가 되어서요... p.s. 혹시 강의자료 중 ppt형식?으로 된 자료들도 강의자료에 올려주실 수 있으신지 여쭤보고 싶습니다
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
참조와 주소 전달의 크기 확인방법
struct StatInfo { int hp; int attack; int defence; }; int main() { StatInfo info; info.hp = 100; info.attack = 5; info.defence = 1; PrintInfoByRef(info); PrintInfoByPtr(&info); } void PrintInfoByRef(StatInfo &info) { cout << "size is :" << sizeof(info) << endl; } void PrintInfoByPtr(StatInfo* info) { cout << "size is :" << sizeof(info) << endl; } 주소 전달 방식과 참조 잔달방식 모두 8바이트(64bit환경) 크기만큼을 매개변수로 전달한다고 설명을 해주셔서 해당 부분을 위 코드를 사용해 확인을 해봤습니다. 그런데 주소 전달방식의 경우 8바이트가 맞게 나오지만 참조 전달방식의 경우 구조체의 크기(12바이트)로 확인이 됩니다. 그리고 각 함수들에 전달되는 매개변수의 메모리를 확인해봐도 주소 전달방식의 경우 구조체의 주소값을 가지고 있었지만 참조 전달방식의 경우 구조체의 첫번째 값(위 예제에서 int hp)을 가르키고 있었습니다. 어찌보면 당연하게도 값 전달방식과 동일하게 main함수에서 구조체 객체를 매개변수로 넘겨주기 때문에 그럴 수 있지만 강의에서 설명해주신 메모리의 크기가 확인이 안되니 납득이 어렵습니다. 강의에서 설명해주신 참조와 주소 전달의 크기가 8바이트라는것을 어떻게 확인할 수 있을까요? 참조와 주소 전달 방식 각각을 어셈블러를 까면서 확인하는 과정을 강의에 포함해 설명해주셔서 내부적으로 동작하는 방식을 눈으로는 알겠지만 각각의 크기를 눈으로 직접 확인하기 어려워 뭔가 상충되어 이해되는 느낌입니다....
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
게임회사 취업 & 자격증 관련
안녕하세요. 루키스님저는 올해 21살이고, 2023년 전문대 졸업 예정자입니다.아직 군대는 안 갔다 왔고, 학교에서 Java, C, Python 문법만 배운 정도입니다.지금 3월 개강 전에 루키스님 C++ Part 1을 보면서 공부 중인데 지금 공부하다가 3월에 정보처리산업기사라는 자격증을 교수님이 따라고 하시는데1. 정보처리산업기사 자격증을 따면 게임회사 취업할 때 유리한 게 있나요?2. 따는게 좋다면 편입을 해서 정보처리기사를 따는 게 더 좋을까요? 3. 루키스님이 올리신 C++ 강의 다 수강하고 잘 따라가면 취업을 했을 때 문제없을 실력이 될까요?( 졸업하고 학원을 다니는 게 더 좋은 방법일까요? )4. 너무 취업에만 신경 쓰는 것보다 혼자서 만들고 싶은 게임도 만들면서 실력을 쌓고 취업을 하는 게 더 좋은 방법일까요? 5. 군대를 안 가고 방위산업체를 전공 살려서 가고 싶은데 괜찮을까요? 제가 아직 어려서 어떻게 진로를 계획해야 할지 모르겠습니다. 조언 부탁드립니다. 영 관련 문의는 1:1 문의하기를 이용해주세요.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
initializer_list를 인자로 받는 생성자의 활용
안녕하세요. 강의 잘 듣고 있습니다. 다름이 아니라 생성자의 인자로 initializer_list를 받아서 이 내용을 함수에서 사용하고 싶을 때에는 어떤 방식으로 접근을 해야 하는지 모르겠네요. 배열처럼 접근해도 안되고 포인터처럼 해도 안되더군요.