월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
class 내부 함수 선언에 대해서 궁금합니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. class Car { public: void TurnKey() { RunEngine() } void RunEngine(); } 이렇게 RunEngine이 선언되기 전에 TunrKey에서 먼저 사용되는것이 어떻게 가능한지 알고싶습니다! 일반 함수들을 사용할 때는 허용되지 않았던것으로 알고있어서 혼란이 옵니다 항상 강의 잘 듣고 있습니다 감사합니다
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
const 수식? 질문입니다
const char* p; 의경우 *p의 변경이 불가능한거고 const char** pp; 의 경우에는 **pp의 변경이 불가능한거죵 이때 *pp를 변경 못하게하려면 const수식 위치가 const char* const* pp 가 되어야하니 어떻게 보면 좀더 일반화 된 const의 위치는 char const* const* pp 처럼 * 바로 앞이 규칙적으로 보이는데.. 통상적으로는 TYPE앞쪽에 쓰이나요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
굳이 locale을 설정해야 하는 이유가 있나요?
유니코드 관련해 질문이 있습니다! UTF16 방식이 2바이트에 각종 문자를 할당하는 것이라면, 한글에도 문자 하나하나에 2바이트 크기의 어떤 고유한 데이터가 할당되어 있는 것이라고 이해했습니다. 그런데 이러면 굳이 왜 locale("kor")을 해야하는 것인지 의문이 듭니다. wchar_t와 L을 쓰면, 이 데이터가 유니코드이면서 utf16 방식임을 충분히 알려준 것 아닐까요..? 그러면 데이터를 보고 이것이 한글임을 바로 알 수 있지 않나요??
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
함수내에서의 동적할당
여기까지 공부하다가 궁금한 점이 생겨서 여쭈어봅니다 함수내에서 new로 동적할당을 하게 된다면 어떻게 해야하나요? 만약 Item이라는 클래스의 포인터를 반환하는 함수라면 new선언 후에 리턴값으로 이 new로 선언한 것을 반환하게 된다면 delete는 어디에서 선언해야하는 걸까요? 일단 생각해본건 return후 반한된건 new로 선언한 힙에 저장된 객체의 주소일테니 함수의 이름을 delete하는 걸로 생각하고있는데 궁금해서 여쭈어봅니다 Item* Find() { Item* item = new Item(); item->a = 100; return item; } int main() { Item* it = Find(); delete it; return 0; }
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
어셈블리 코드가 좀 다릅니다.
강사님 코드에는 함수를 call 하기 전에 a, b를 스택에 push를 하는데 제꺼에는 그러한 부분이 없고 mov로 처리를 하네요. 혹시 제가 visual studio 2022 버전을 사용해서 컴파일러가 달라서 이런건가요?? 아니면 x64와 x86의 차이인가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
중괄호 초기화에 대해서 질문드립니다.
축소변환 방지의 예시로 들어주신 것이 이해가 안돼서 질문드립니다. int x = 0; double y{x}; 가 통과가 안된다는게 이해가 안됩니다. int -> double 변환인데 이것은 축소 변환이 아니라 확대 변환이여서 데이터 손실이 없지 않나요?? 왜 통과가 안되는지 궁금합니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
이런식으로 짜봤는데
mov ax, 91 ;입력 값 mov bx, 1 ;출력 값 shl ax, 15 cmp ax, 0 je LABEL_ODD mov bx, 0 LABEL_ODD: PRINT_HEX 1, bx NEWLINE 제 생각에는 문제가 없을것 같은데 문제가 생길 수 있는 부분이 있을까요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
Creature(int creatureType) : _creatureType(creatureType)
Creature(int creatureType) : _creatureType(creatureType) 생성자 상속에서 _creatureType(creatureType) 이 의미하는바가 무엇인지 알고 싶습니다. cretaure type 을 _creatureType 으로 캐스팅 해주는 것을 상속 받는다는 의미인지요?
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
제가 스택 프레임을 잘 이해한 것이 맞는 걸까요?
디어셈블리를 보면서 한번 쭉 따라가보았는데 제가 잘 이해한 것인지 헷갈려서 정리한 것을 올려봅니다. 스택프레임 순서 현재 매개변수 저장 이전 BP(주소)값 저장 : push rbp RDI 값 저장 : push rdi 현재 SP(주소)값 저장 : sub rsp 현재 BP(주소)값 저장 : lea rpb [rsp + n] 피호출자 매개변수 저장 : mov 형식 ptr [rsp + n] (피호출자 입장) 이전 BP(주소)값 저장. 5번 값과 똑같음 그리고 정리를 하다보니 번외로 이해하기 너무 어렵거나 궁금한 부분들이 있어서 염치 불구하고 질문 몇가지 드립니다. 1. 스택 프레임에서 RDI 레지스터는 무슨 역할을 하는 것인가요? 복사 목적지 주소 레지스터를 의미하는 것 같은데 어떤 값을 push 하는 건지 모르겠습니다. 2. 영상에서의 temp와 같은 역할을 하는 메모리가 생기는 조건 같은 것이 있는 건가요? 기본 자료형(Ex. int)을 반환하는 함수를 만들어서 어셈블리로 보니까 호출자 쪽에 따로 접근하는 매개변수는 생기지 않은 것 같아서 의문이 들었습니다. 3. 피호출자 함수가 반환한 값을 호출자 함수에서 따로 저장하지 않고 날린다면 temp가 확보하고 있는 공간은 어떻게 되는건가요? 4. 마지막입니다. 우선 질문에 앞서 코드를 보여드리겠습니다. #include <iostream> class Test { public: Test(void) { std::cout << this << " : 디폴트 생성자" << std::endl; } Test(Test&) { std::cout << this << " : 복사 생성자" << std::endl; } Test(Test&&) { std::cout << this << " : r-value 이동 생성자" << std::endl; } ~Test(void) { std::cout << this << " : 소멸자" << std::endl; } }; Test TestFunc(Test testParam) { Test local; return local; } int main(void) { std::cout << "****** 시작 ******" << std::endl; Test a; Test b = TestFunc(a); std::cout << "****** 종료 ******" << std::endl; return 0; } 실행결과 입니다. 호출자 함수에서 클래스나 구조체를 선언함과 동시에 피호출자 함수 반환값(클래스or구조체)으로 정의를 하면 어떻게 되는건가 궁금합니다. 이번 강의에서 나온 것처럼 호출자 함수의 temp에 복사된 반환값(임시객체)에 식별자를 부여하고 temp 전체를 지역 변수처럼 활용하는 것인가 생각이 듭니다. 질문이 너무 많은 것 같아 염치 없습니다. 궁금한 부분의 어셈블리어를 직접 확인하면 제일 좋을텐데 아직 어셈블리어가 익숙하지 않아 이렇게 질문 남겨봅니다. 감사합니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
const가 메모리에 할당되지 않는다는게
const를 지역변수로 선언하면 stack영역에 할당된다는건 이해했습니다. 근데 전역변수로 사용할 경우에는 메모리가 어디에 할당될지는 컴파일러의 마음이라고 설명해주시고 메모리에 할당되지 않았다는걸 보여주셨는데 이게 궁금해서 인터넷에 찾아보니 다들 전역const에 경우에는 .rodata에 메모리가 할당된다고 설명을 하더라구요... #define의 경우에는 메모리를 쓰지않는다고하고... 약간좀 혼란이오는데 메모리에 할당될지 말지는 랜덤이라는게 맞는 말인가요?
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
연습문제(문자열)#2 질문있습니다.
#include <iostream> using namespace std; //문제2 문자열 복사 함수 char* StrCpy(char* dest, char* src) { int i = 0; while (src[i] != '\0') { dest[i] = src[i]; i++; } dest[i] = '\0'; return dest; } int main() { const int BUF_SIZE = 100; char a[BUF_SIZE] = "Hello"; char b[BUF_SIZE] = "World"; StrCpy(b, a); cout << b << endl; } 안녕하세요 강사님 최근 연습문제 풀다가 질문있어서 올리게 되었는데요, 3가지 질문드립니다. 질문1 함수 char* StrCpy(char* dest, char* src) 부분에서 함수 자료형이 char*이면 return을 받을때 &rest가 아닌 그냥 rest받는 이유를 알려주세요. 혼자 계속 고민하다가 도저히 모르겠어요 ㅠㅠ 질문2 함수 char* StrCpy(char* dest, char* src)에서 매개변수가 char* 되어있으면 StrCpy(b, a)가 아닌 StrCpy(&b, &a)로 받아야되는 것아닌가요? 질문3 마지막으로 cout << b << endl;에서 b를 출력하면 b[0]만 출력하는줄 알았는데 나머지 배열 전체값이 출력되는 원리 좀 알려주세요. 끝으로 제가 강사님 강의 듣고 많은 도움이 되고 있는데 c++은 사실 이번이 처음이어서 그런지 많은 어려움이 있습니다. 특히 포인터로 들어가면서 더더욱 힘들더라구요ㅜㅜ 포인터 부분 어떻게 극복하면 좋은지 약간의 조언좀 해주시면 감사하겠습니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
lambda강의를 듣고 코딩문제에서 구현해봤는데 잘 안되네요 ㅠㅠ
struct isSpecial { bool operator()(char c) { return !((c >= 48 && c <= 57) || (c >= 97 && c <= 122) || c == '-' || c == '_' || c == '.'); } }; // auto isSpecial = [](char c) {return ((c >= 48 && c <= 57)|| (c >= 97 && c <= 122) || c == '-' || c == '_' || c == '.'); }; new_id.erase(remove_if(new_id.begin(), new_id.end(), isSpecial()), new_id.end()); new_id는 string입니다.. struct isSpecial로 remove_if에 전달하면 실행되는데 아래 lambda문법으로 isSpecial을 전달하면 "E1767 지정된 인수 목록으로 함수 "lambda []bool (char c)->bool"을(를) 호출할 수 없습니다." 라며 오류가 발생합니다 ㅠㅠ 왜이러는건가요
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
코딩테스트 준비는 언제부터 시작하면 좋을까요?
안녕하세요 루키스님 현재 Part1의 C++ 강의를 쭉 듣고있습니다 기업 공고를 찾아보니 코딩테스트를 요구하는 곳도 다수 존재하더군요 그래서 강의와 병행하며 백준이나 프로그래머스에서 코딩테스트 준비까지 같이하려는데 자료구조 알고리즘 강의까지 전부 학습한 후부터 준비하는 것이 좋을까요?
- 해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
C++ 책
안녕하세요 루키스님 예전에 강의를 신청해놓고 이제서야 시간이 나서 들으려합니다.. 제가 C++ 책이 하나도 없어서 하나 구매해서 참고하면서 강의를 듣고싶은데요.. 어떤책을 살지 고민하다가 혹시 추천해주실만한 책이 있으신지해서 여쭤봅니다 .강의내용과 상관없는 질문이라 죄송합니다..
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
*ptr 부분 크래쉬 이유
*ptr이 매개변수로 받을때부터 TestPtr에서 &a를 받았는데 어째서 그값이 a[100] 주소를 가르키고있고 그 상태에서*ptr=0x12341234를 넣었을떄 어떻게 크래쉬가 나는지 이해가 되지않아 이렇게 질문을드립니다
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
연산자 오버로딩 ++ 질문입니다.
Iterator& operator++() { _ptr++; return *this; } Iterator operator++(int) { Iterator temp = *this; _ptr++; return temp; } 넘겨주는 부분이 이해가 안돼서 질문드립니다. 전위형의 경우 return *this를 반환하고 후위형의경우에 temp에다가 *this를 넣은후 temp를 반환하는데 결국 둘의 반환타입이 같은거 아닌가요??.. 근데 왜 전위형의경우에는 반환값이 Iterator의 참조값이고 후위형의 경우는 Iterator인가요?..
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
14:25 스택메모리 사용영역설정 질문 있습니다
위 체크한 부분에서 스택에 범위를 설정한다 하셨는데 이전 함수ebp를 푸쉬한다음 ebp에 esp를 넣어놓고, 매개변수와 리턴할주소값을 일단 넣은 다음 공간을 확보하는건가요? 순서가 1.이전함수bp값을 저장 2.ebp값을esp로 설정 3.esp에 사용할범위설정 맞나요? 정확히 어떤식으로 영역설정이 되는건가요?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
스마트 포인터는 언제 사용해야하나요?
스마트 포인터라는게 있다라는 점은 알겠는데, 그럼 언제 사용을 해야하나요? 필요에 따라 사용을 해야하는 것인지 아니면 항상 사용을 해야하는 것인지 궁금합니다.
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
콜백함수에 관해서
루키즈님 안녕하세요. 콜백함수 강의를 보고 제가 따로 구현을 해보았는데요. 이것도 콜백함수 인지 여쭤보고 싶어서 질문 남깁니다. 앞서서 이번에 게임 회사 취업되서 일단 감사의 말씀 먼저 올립니다! ㅎㅎ 콜백함수 정의가 함수의 인자로 함수포인터로 사용되어서 다른 함수나 모듈 에서 인자로 사용된 함수가 사용된다? 라는 것을 의미하는 것 같은데요? 제가 억지로 만든 코드인데요. 이것도 콜백 함수라고 할수 있지 않을까요 ?
- 미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
포인터 관련 질문입니다.
강의를 듣던 도중(캐스팅 4총사) 궁금한 점이 생겨서 질문드립니다. class Player와 그 자식 class Knight가 있는데 Player* p = new Knight(); 에서 p의 타입인 Player*가 무슨 의미를 띠는 지 모르겠습니다. 이렇게 되면 p에 Player를 넣던 Knight를 넣던 Archer를 넣던 상관없는거 아닌가요?.. 또 void*로 선언해준거랑 뭐가다른지 모르겠습니다..