월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
업/다운 캐스팅 추가 질문입니다.
enum _itemType을 통해서, 해당 객체가 원래 무슨 객체였는지 파악하는 형태로 다운캐스팅을 하는 내용과 dynamic_cast를 통해 기존 객체 형태를 자동으로 파악해서 바꾸게 하는 것이랑은 무슨 차이가 있는건가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
업캐스팅 후 다운캐스팅 과정 질문입니다.
안녕하세요 강사님! 자식에서 부모로 업캐스팅 한 경우, 자식 객체에서만 존재했던멤버 변수들은 그대로 남아있게 되는건가요?사실상 부모 포인터가 가리키게 되도록 캐스팅이 되니까, 부모가 가진 멤버 변수들 이외에 자식이 가지고 있던 주소들은다른 부분에서 쓰레기 값이라고 판단하고 마음대로 쓸 가능성이 있는건지 아닌 것인지 이 부분이 이해가 잘 안됩니다 ... 아직 헷갈리는 점이 많지만, 제가 이해한 바로는 ... ... 업캐스팅 된 이후에도 CRT 힙 매니저가 자식 객체를 가리키는 포인터 였을 때 가졌던 메모리 주소의 범위(?)를 기억하기 때문에, 부모 객체로 업캐스팅 된 이후에도 자식 객체가 사용했던 부분을 계속해서 기억하고 값을 유지하는 것일 것 같다는 생각이 듭니다... 혹시 이게 맞나요???
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
안녕하세요 질문이있습니다
연산자 오버로딩 전역함수 버전에서, ostream& operator<<(ostream& os, const Knight& k) { os << k._hp; return os; } 여기서 인자를 const Knight& k로 하면되고,const Knight* k로 하면 안되던데, &, * 둘다 주소값인데 왜 다른건가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
6분대 참조타입 변환 궁금한 부분이있습니다.
강의 정말 잘 보고있습니다. 6분대 참조 타입 변환에서 궁금 한 부분이 한가지 있습니다. { int a = 123456789; // 2의 보수로 데이터 저장 float b = (float&)a; // 부동소수점(지수 + 유효숫자) cout << b << endl; } 위에 코드를 설명하시면서 int a 를 참조 타입 변환을 통해float b에 넣으신다고 설명하시는데 참조 타입 변환을 한다면받는쪽에 타입도 float이 아니라 float&가 아니여야 하는지 궁금합니다저런식으로 하면 참조 타입으로 받는게 아니라 참조 타입으로 변환 후 값 형식으로 float b에 넣어져서 서로 참조관계가아니지 않은가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
vector 질문
1. vector는 힙메모리에 할당되는 동적'배열'이고, 배열이라고 한다면 'vector의 이름은 스택메모리에 할당이 되고, 힙메모리에 할당되어 있는 원소 집합의 첫번째를 가리키는것(주소)'으로 이해했는데요. 제가 이해한것이 맞나요? 2. 그리고 벡터를 class의 멤버 배열로 만들어 주려면 어느방식으로 만들어 주어야 효율적인가요? 예를들어 배열같은 경우는 멤버로 int *arr을 가지고 생성자에서 arr = new int[5]; 이런식으로 만들어 주면 class는 주소값만 가지니 그냥 int arr[5]를 가지는것보다 스택 메모리에 할당되는 용량이 효율적이다(?) 라고 생각 하고있었는데, 벡터는 위처럼 하려면 어떻게 해야하나요? 원소들은 힙메모리에 할당되니 그냥 vector<int> v를 멤버로 가지고 쓰면 되나요? 이해도가 아직 낮아 횡설수설한점 죄송합니다.
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
this와 *this
안녕하세요 강의를 거의 다 듣다가 헷갈리는 개념이 있어서 복습중입니다. this와 *this에 대해서 잘 이해가 안되는 부분이 있어서 질문 드립니다. 아래와 같이 예시 클래스를 만들어 봤을 때 (멤버변수들은 제가 메모리에서 쉽게 찾아보려고 연속되게 넣은거고 의미 없습니다) class Simple { public: Simple& operator=(const Simple& rhs) { if (this == &rhs) return *this; } private: int mNum = 1; int mNum2 = 2; int mNum3 = 3; int mNum4 = 4; int mNum5 = 5; }; 궁금한 점은 *this는 객체 자신이다 라는게 과연 정확히 뭘까가 의문입니다. this는 자신이 속한 객체의 포인터인것은 이해가 가지만 *this 객체를 자신을 넘긴다는게 어떻게 가능한지 어떤 의미인지 의문입니다. 시작주소 + 어떠한 객체에 대한 헤더정보가 넘어가는것인가요 ? 제가 헷갈리는 이유는 예를 들어서 int num = 3; int* ptr = # cout << *ptr << endl; int arr[10] = { 0 }; int* arrptr = arr; cout << *arrptr << endl; 변수와 배열에 대해서 포인터를 만들었을 때 여기서 *ptr은 값 3이고, *arrptr은 첫번째 원소의 값 0이지 int arr[10]이거나 arr의 첫번째 원소의 주소가 아니기 때문에 *this가 객체 자신을 넘긴다 ?라는게 어떤 의미일지 이해가 잘 안갑니다. 결국 return 값으로 넘길수 있는것은 뭔가 한개일테고 데이터멤버 첫번째가 값이 아니면 시작주소 아닐까 싶은데. 만약에 단순히 시작주소라면 this ==&rhs 이 문장은 *this == &rhs로 바꿔도 똑같을테고요.. 결론적으로 질문은 *this가 객체 자신을 가리킨다는것이 어떤 의미인지 ?? 입니다. 객체는 일대일 대응이 안되다보니 가리킨다 라는 개념이 안 와닿습니다. 시작주소라고 하면 ? 그냥 포인터랑 다른점이 없는거 같구요. 뭔가 헤더 정보를 가지고 있는것인가요. + 구조체로 테스트 해보려고하면 C++ 이러한 피연산자와 일치하는 연산자가 없습니다. 피연산자 형식이 std::ostream << myStruct입니다. 아예 되지가 않습니다. 조사식으로 *strptr == my인 것은 확인했습니다. 여전히 어떻게 가능한지? 잘 이해는 안되네요 ㅠ struct myStruct my; struct myStruct* strptr = &my; cout << *strptr << endl;
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
static 관련 질문이있습니다!
- 항상 좋은 강의 감사합니다. static질문이 있습니다. class Marine { public: //이 상태면 에러가 발생하는데, static int s_attack //전역으로 빼고 초기화를 해주면 에러가 발생하지 않습니다. } 왜 그런건지 궁금합니다. 따로 클래스 내부에서 static 변수를 초기화할려고 해도 에러가 발생하더라구요 무조건 클래스 밖에서 값 할당을 해주어야하나요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
다른함수에 vector 전달
안녕하세요. vector를 다른함수에 iterator를 사용해 매개변수로 전달하려고 하려고 합니다. 여기서 vector의 size는 it에 없고(v.size()처럼 it.size()를 사용햅 보려 했는데 안되더라고요) 또 다른 매개변수로 전달을 해주어야 하나요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
전처리기 사용 질문드립니다
강의중에 전처리기가 enum과 const int의 다음 순위로 고려된다고 설명해주셨는데요 예전 open source들을 보면서 전처리기로 상수값을 지정해서 사용한것을 빈번하게 본 경험이 있습니다. enum과 const int대신 전처리기를 사용하면 어떠한점이 불리한지(memory, 코드 유지보수 등등.) 그리고 어떤 상황에서 전처리기를 꼭 써야하는지 use case를 알려주시면 충분히 이해하는데 도움이 될 것 같습니다.
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
상수 참조 매개변수
template<typename T> class Node { public: Node() : _next(nullptr), _prev(nullptr), _data(T()) { } Node(const T& value) : _next(nullptr), _prev(nullptr), _data(value) { } public: Node* _next; Node* _prev; T _data; }; STL 리스트를 강좌를 듣다가 궁금한 점이 있어서 연속 질문 드립니다. 생성자에서 왜 cosnt T& value로 매개변수로 사용하는지 .. 잘 이해가 안갑니다. 참조변수를 받으려면 멤버변수가 T* _data로 포인터형이어야 되는것 아닌가 생각이 드는데 제가 뭘 잘못 알고 있는것인지 궁금합니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
구구단
mov rax,1 mov rbx,0 mov rdx,9 mov rcx,9 GU1: inc al GU2: inc bl mul bl PRINT_DEC 1,ax NEWLINE cmp bl , 9 je GU1 jne GU2 cmp al , 9 jne GU1 xor rax, rax ret 곱셈 결과가 ax 레지스터에 저장되서 그거 때문에 그런거 같은데
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
연습문제 for문 풀이 순서를 잘 모르겠습니다
안녕하세요! 강의 너무 잘 듣고있습니다! 연습문제 풀이도중에 궁금한 부분때문에 질문 남깁니다! for 문 (초기식; 조건식; 제어식;) {} 에서 순서가 1번이 초기식 2번이 조건식 3번이 중괄호 안에 명령문 마지막으로 제어식이 실행되는걸로 알고있는데, 연습문제 별찍기 3번에서 for (int i = 0; i < input; i++) { for (int j = 0; j < (input - i); j++) { cout << "*" } cout << endl; } 이 부분에서 첫번째로 실행 되는게 1) int i = 0; 2) i < input; 3) 그 다음 for 문 4) *****출력 5) j++ 6) 한칸 띄고 7) i++ 인걸로 알고있습니다 이제 그러면 i++ 가 되었으니 input을 5라고 입력해줬을 때 1 < 5 나 똑같은 부분인데 이제 그 다음에 실행될 j부분에서도 j < (5 - 1) 이고 ****출력 후 j++가 되는데 그러면 이제 계속 증가하다보면 i 가 3이 되면 3 < input (5) 이고 다음 for문에서는 j < (input - 3) 이면 3 < 5 - 3부분이 되서 실행이 안되는게 아닌가요?? 제가 잘못알고 있는 부분이 있을거라고 생각하는데 어느 부분인지 잘 이해가 안가서요! 검색을 해도 강의만큼 크게 머리 속으로 잘 들어오질 않네요!
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
곱셈
mul bx => ax * bx 연산 결과는 dx(상위 16비트) ax (하위 16비트) 연산 결과 부분이 이해가 안가요 ㅠㅠ mov ax,4 mov bx,5 mul bx 라고 하면 출력 할 때 어떻게 해야하나요
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
GET_DEC 1,num
GET_DEC 1,num 이 부분은 왜 [num] 이렇게 안 하는 건가요
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
bss 섹션
변수 e는 어떻게 사용할 수 있어요 ?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
언어는 어느정도 공부하고 넘어가는게 좋을까요?
루카스님 강의 외에도 홍정모님 c++강의도 보는데요 일단 강의는 완강하고 이해 안가는 부분은 3~4번 돌려보고 그랬는데 사실 완강을 해서 문법은 어느정도 안다고 생각은 하는데 문법을 제대로 사용할 수 있냐라고 하면 아니라고 생각해요.. 공부하고 다음으로 넘어가는 기준을 어떻게 새워야 하는지 모르겠습니다.. 제가 c++ -> 다렉12 -> 언리얼 순으로 공부해서 게임하나 출시해보고 취업할 생각이거든요.. "이 정도면 c++ 기초 수준은 된다 이제 다렉으로 넘어가도 되겠다!"가 어느 정도일까요.. 머리가 나빠 언어공부를 오래해서 그런지 사실 점점 흥미도 떨어지고 빨리 구현하고 움직이는걸 보고싶고.. 괜히 조바심에 대충하고 넘어가서 나중에 이상한 버릇이 생기거나 할까봐 무서워요.. c++언어 완강을 하고 다렉으로 넘어가도 될지.. c++에 기초는 넘겼다는 기준이 뭘지.. 이럴떈 어떻게 해야될까요? ㅠ
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
파일 압축을 풀고난후
파일 압축을 풀고난후 비주얼스튜디오에 그대로 어떻게 옮기나요??.... ㅠㅠ
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
OnAttacked 함수 질문
강의 17:20부분에서 나오는 OnAttack 함수를 구현하실때, 데미지를 계산하는 부분에서 매개변수로 받아온 attacker의 멤버변수 _attack을 getter함수를 따로 구현하지 않고 어떻게 attacker->_attack 처럼 그냥 접근 할 수 있는것인가요? attacker는 Creature 객체이고 Creature의 멤버변수 _attack는 protected로 보호되어 직접적인 접근이 안되어야 하는것 아닌가요? 포인터를 통한 주소 접근이라서 가능한 것인지요?
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
c++공부 방법에 관해서...
덕분에 c++강의 잘 듣고 있지만 요즘 고민이 있어서, 한가지 여쭤보고자 합니다. 이전에 '포인터' 때문에 많이 애를 먹었는데, '클래스' 파트로 들어오고나니 더 힘들더군요 ㅜㅜ 이부분이 지루하고 많이들 어렵다고 하지만, 막상 처음 겪게 되니 요즘 공부하면서 멘탈에 금이가기 시작 하더군요... 혹시 이런 어려운 파트들은 어떻게 극복할 수 있는지 팁좀 알려 주실 수 있을까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
혹시 ::라는 뜻이
제가 강의를 제대로 안들었는지 모르겠지만 Marine::s_attack이라는 것이 마린 클래스 안에있는 s_attack을 사용한다라고 이해 하는 것이 맞을까요? ::라는 문법이 갑자기 기억이 나지를 않아서..