월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
1-12 스택메모리 push함수
25분 쯤에 나오는 이전에 rax, rbx를 중요한 용도로 쓰고 있었을 때push rax를 하셨는데이미 중요한 용도로 rax를 쓰고 있는데 그걸 rax에 대입한다면 말이 안되고... push rax하면 rax에 쓰고 있던 중요한 값들이 어디에 저장되나요???
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
1-12. 스택 메모리 16분 주변에 나오는 "이전BP값"이 어디를 가리키는거에요??
아무리 봐도 모르겠어요
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
안녕하세요 루키스님 part1, part3
안녕하세요 루키스님비전공자이지만 루키스님의 강의 덕분에 많이 배우고 있습니다 질문이 있어서 올려요!저는 클라이언트 개발에도, 서버 개발에도 모두 관심이 있는데당장 취업이 급해서..!클라이언트 개발로 우선 취업하려는 생각입니다.part1 (c++) 과 part3 (자료구조알고리즘) 강의 를 듣고코딩테스트와 포트폴리오를 별도로 준비하면 충분할까요??윈도우api 와 다이렉트x는 아예 접해보지 않아서 시간이 정말 오래 걸릴 것 같아서요...!아니면 얼마 전에 올려주신 게임 프로그래머 입문 올인원이라도 들어야할까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
게임 프로그래머 입문 올인원 vs c++ 언리얼
C++ 언리얼 part 1, 2수강하고 진행을 못하다가 지금 다시 하려고 보니 게임 프로그래머 입문 올인원 이 나왓던데 차이가 있는건가요? 아니면 1,2 햇으니 연재가 중단됫던데 part3,4를 마져 보는게 나을까요?아니면 UE5로 넘어가는게 나은가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
vetor구현 질문있습니다!
vetor를 구현하는 부분에서 질문 있습니다!*연산을 위해 아래와같이 구현하신걸 보고 이해가되지 않습니다..! for (auto i = v.begin(); i!=v.end(); ++i) { cout << *i << "\n"; } T& operator*() { return *_ptr}*연산을 통해 데이터를 꺼내오는 것이면 데이터의 복사값을 반환해주는게 아닌 어떻게 T& 주소값을 반환해주는 연산이 허용되는지 해당 문법이 잘 이해가 되지 않습니다..!
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
메모리 주소값 더하는게 이해가 안되요 ㅠㅠ
주소값이라는 개념은 이해가 됬는데요강의 변수와 레지스터 15분쯤 보면1바이트를 더했는데 왜0x403010에서 0x403011로 된건지 잘모르겠네요..저기 뒤에 숫자 1은 바이트가 아니라 1을 더한거아닌가요?
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
list #2강의 18:48~ 중간 삽입/삭제와 임의접근의 모순
안녕하십니까 강사님 항상 고생하십니다.list에 대해서 복습을 하던 중 의문점이 생겨 질문 드립니다. 해당 강의의 중간 삽입/삭제와 임의접근의 모순에 대해선 내용을 이해 했습니다. 여기서 생기는 의문점이 그렇다면 remove()는 왜 구현해 놨을까? 입니다. remove()는 동작할 때 리스트항목을 모두 순회하여 해당 값을 지우는 걸로 알고 있습니다.이것 또한 지우는 것 자체는 빠르겠으나 그전에 하는 순회는 리스트의 크기가 커질수록 아주 느릴텐데, 그 위치를 기억하고 있던 것도 아니고 왜그런 remove()를 임의접근처럼 막아 놓지 않았는지 궁금합니다!
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
weak_ptr 질문
weak_ptr은 래퍼런스 카운트를 증가시키지 않는 포인터로 알고 있는데요강의 내용에는 week_ptr도 래퍼런스 카운트가 있는것처럼 강의 해주셔서 햇갈리네요..존재하긴하나 증가 시키지만 않는건가요??? week_ptr은 래퍼런스 카운트를 증가시키지않는 약한(?) 포인터로 가리키고 있다가가리키고 있는 메모리가 유효한지 확인하기 위해 shared_ptr로 접근해보고유효한지 아닌지 판단한다고 알고있습니다 어떤게 맞는걸까요?? 제가 틀리게 알고있던걸까요?? 오래돼서 했갈립니다 ㅠㅠ
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
list iterator 크래시 내고싶습니다.
stl에서 제공하는 list는iterator가 header를 가리키고 있을때 it++을 해서 첫번째 노드로 접근하거나, 첫번째 노드에서 it--를 해서 header노드로 접근하면 크래시(런타임에러)가 발생하잖아요?Q)근데 list#3 수업에서 우리가 구현한 list는 저렇게 해도 크래시가 안나고 정상작동 합니다. stl에서는 이걸 크래시 내기 위해서 어떤식으로 코드를 짰을까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
명시적, 암시적 형변환 관련 질문입니다
explicit Knight(int hp) { cout << "Knight 기본 생성자 호출" << endl; _hp = hp; _attack = 10; _posY = 0; _posX = 0; }명시적 형변환 문법인 explicit를 뺀 상태에서k5 = 1 일때 컴파일러에 의해 암시적 형변환으로 인해함수의 인자 int hp에 1이 들어가는 건가요??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
안녕하세요 질문이 있습니다
C++에관한 질문이 아니라 죄송합니다훌륭한 언리얼 개발자를 위해 강의를 수강하고 있습니다.작은규모의 회사에서 진행중인 프로젝트가 언리얼 기반으로 진행중인데 언리얼에서 html5가 최신버전에선 지원을 안한다고 유니티로 바꾸는게 어떻냐는 의견이 나옵니다.1.실제로 아예 최신버전에선 html5를 지원을 안하고 사용할 수 없을까요?2.언리얼에도 아직 미숙한데 유니티를 다시 처음부터 배우게면서 두마리 토끼를 잡으려고 하면 초보인 저에게는 힘든일이될까요? 감사합니다
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
문제 1~2번 이런식으로 접근도 괜찮을까요?
int main(){const int BUF_SIZE = 100;//[H][e][l][l][o][\0][][][][][][][][][]][][][][].......//a의 크기는 100으로 잡고 실제 사용중인 크기는 5..char a[BUF_SIZE] = "Hello";char b[BUF_SIZE]; //2번문제//1번 출력//int len = StrLen(a);//cout << len;//2번 출력//StrCpy(b, a);return 0;}//문제1) 문자열 길이를 출력하는 함수int StrLen(const char* str){//str이라는 문자열의 길이를 반환for (int i = 0; i < *str; i++){if (str[i] == '\0')cout << str[i] << endl;}return 1 + sizeof(str);} //문제2) 문자열 복사 함수void StrCpy(char* dest, char* src){for (int i = 0; i < *src; i++)dest[i] = src[i];}이런식으로 접근해서 풀어봤는데괜찮을까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
캐스팅4총사 강의 질문입니다
뒤에 부분을 다 안보고 질문드렸더니 조금 애매해졌네요.상식적인 캐스팅이 아니라애초에 부모가 어떤 자식의 타입이었는지 확실할때쓰는 것이라고 하는게 맞겠네요.강의에서 나오는 것처럼요Player* p = new Knight();Knight* k1 = static_cast<Knight*>(p);말이 안되는건 아니니까 그때 쓴다 이런 뜻이었네요.역시 한국말은 끝까지 들어봐야 되는거 같네요.. ㅎㅎ답변은 안해주셔도 되겠습니다. 감사합니다.=================================일단 주말에 질문을 드려서 죄송합니다.답변은 월요일에 해주시면 될 것 같습니다!3분 13초부터 나오는 상속 관계끼리의 타입변환에대해서 주석으로 이야기 해주시는 부분인데요Player*->Knight* (다운캐스팅) 이게상식적인 캐스팅이라고 하셨는데 아무리 들어도 뭔가 잘못된게 아닌가싶어서요. 반대로 이야기 하신것 아닌가요?..자식은 부모를 포함하고 있으니까 애초에 부모로도캐스팅 될 수 있는데 부모가 자식으로 캐스팅 되는 것은 타입변환 강의에서도 위험하다고 하셨던것 같은데혹시 player가 자식인가 싶어서 뒤에 내용도 봤는데 Knight가 자식이더군요. 제가 짐작하건데 반대로 이야기 하신게 아닌가 싶은데맞나요??업캐스팅이 상식적인것이고 다운캐스팅은 위험한것 아닌가요?그래서 위험하니까 다운캐스팅 시에는 명시적으로 했던 것이구요.인터넷에서 찾아봐도 다운캐스팅은 업캐스팅에 비해 안전하지 않다고 하는데 다운캐스팅이 상식적인 캐스팅이라는게 이해가 안되어서 질문드려 봅니다.같은 질문이 있나 찾아봐도 없어 이렇게 질문글 남깁니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
ReverseStr 함수에 관련된 질문입니다
ReverseStr 문자열 뒤집기 함수 관련 질문입니다.포인터를 이용한 방식으로 문제 풀이를 해봤습니다미리 StrLen 함수에서 문자열 str의 길이를 받아온 후while문을 이용해서 NULL값을 만날때 까지 str이 나타내는 주소를 이동시켰습니다. cout << *--str; 의 경우 정상적으로 str의 주소가 -1씩되며 포인터에 의해 그 주소에 해당하는 값들이 잘 출력되어정상적으로 출력이 됬는데 cout << --str; 을 할 경우이런식으로 출력이 되더군요..출력된 형태를 보면ololloelloHello 인 것 같은데cout << --str; 의 결과가 이렇게 나온 이유가 궁금합니다..
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
다중 포인터 질문입니다
#include <iostream>using namespace std;// 다중 포인터void SetMessage(const char* a){ a = "Bye"; }void SetMessage(const char** a){ *a = "Bye";}int main(){ // .rdata [H][e][l][l][o][\0] char형 배열 형태 // main stackframe msg[ Hello주소 ] << 8바이트 const char* msg = "Hello"; // [매개변수][RET][지역변수(msg(Hello주소))] [매개변수(a(Bye주소))][RET][지역변수] SetMessage(msg); cout << msg << endl; // .rdata [H][e][l][l][o][\0] char형 배열 형태 // msg [ Hello주소 ] << 8바이트 // pp[ &msg ] << 8바이트 const char** pp = &msg; SetMessage(pp); cout << msg << endl; return 0;} 메모리를 찬찬히 까보면서 확인했는데궁금한점이 있어서 글 남깁니다 1.void SetMessage(const char** a){ *a = "Bye";} 이 부분이 실행되고 난 뒤에 msg의 시작주소가 Hello주소가 아닌 Bye 주소를 나타내고있는데원래 포인터를 이용하면 해당 주소로 텔레포트 후 그 주소의 데이터에 직접 접근해서 데이터를 변경하는 것으로 알고있습니다그런데 문자열은 .rdata로 수정불가하기 때문에 단순히 msg가 가리키는 주소만 변경해서즉, msg의 시작주소가 Hello주소가 아닌 Bye의 시작주소를 가리키게 된건가요? 2.함수 호출이 끝난 뒤에는 Bye주소에 해당하는 값인 문자열 "Bye"는 메모리상에 데이터로 남아있던데이 데이터가 사라지지 않는 이유를 잘 모르겠습니다.스택 프레임 구조에서 [매개변수][RET][지역변수] 이 세가지만 없어지게 되서 그런건가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
연관 없는 클래스 사이의 값 타입 변환
안녕하세요.타입변화#2 강의 // 타입 변환 연산자를 사용Knight knight2 = dog; 을 하려고 하는데요. 디버깅 모드에서// 타입변환 연산자 operator Knight() { return (Knight)(*this); }이 부분이 무한 루프를 돌면서 stack overflow가 발생합니다.그냥 빌드는 가능하던데 무슨 이유 때문일까요??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
문자열 출력의 경우
안녕하세요B는 data영역에 있는 문자열의 시작 주소를 저장하는데그렇다면 B를 출력하면 주소값을 출력해야 하는거 아닌가요? A의 상황도 같은 상황입니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터 질문입니다
void Createmonster(StatInfo* Info); // 함수 선언부 Createmonster(&monster); // 함수 호출부 void Createmonster(StatInfo* Info) // 함수 내용{ cout << "몬스터 생성" << endl; Info->hp = 40; Info->damage = 8; Info->defence = 2;}Info->hp 가 어떻게 monster.hp에 접근하게 되는지 잘 이해가 안갑니다..해석이 잘 안된다고 해야될지 말로 표현이 잘 안됩니다
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
강의순서 질문입니다
파트1 ~ 파트3까지 수강신청했는데요 파트1인 c++을 듣고 파트3 자료구조 알고리즘을 이어 공부하는건 어떻게 생각하시나요 ? 이후 파트2 다이렉트x를 공부하는 방향 입니다. 혹시 파트3를 공부하는데에 파트2의 내용이 필요할까요? 어떻게 생각하시는지 궁금합니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
다음 강의 고민입니다
이번 강의를 다 듣고 다음 강의 중 section3 부터 할지 section2 부터 할지 고민입니다.먼저 자료구조와 알고리즘을 통해 C++ 에 대해 더 공부하는게 괜찮을까요?