정적 바인딩 vs 동적 바인딩
·
C++
✔정적 바인딩프로그램 컴파일 시점에 함수 호출이 결정되는 바인딩으로 일반 함수에 해당(non-virtual)빠르고 메모리 사용이 적음 ✔동적 바인딩프로그램 실행 시점에 함수 호출이 결정되는 바인딩으로 가상 함수(virtual function_virtual 키워드) 사용실행 중에 객체의 실제 타입에 따라 적합한 함수 호출 //파생 클래스에서 기본 클래스의 함수를 재정의했더라도, //포인터나 참조가 기본 클래스 형식인 경우 기본 클래스의 함수가 호출#include using namespace std;class Base {public: virtual void Print() { // 동적 바인딩 cout Print(); // Derived Print // 정적 바인딩 (non-virtua..
자료형의 오버플로우
·
C++
값이 자료형의 최대값을 초과하면 최소값으로 순환됨 1. int크기: 4바이트 (32비트)부호 있는 int (default): -2,147,483,648 ~ 2,147,483,647부호 없는 unsigned int: 0 ~ 4,294,967,295 2. long long크기: 8바이트 (64비트)부호 있는 long long: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807부호 없는 unsigned long long: 0 ~ 18,446,744,073,709,551,615 3. long크기와 범위는 시스템에 따라 상이대부분 long은 int와 동일한 크기(4바이트)로 동작하지만 64비트 시스템에서는 8바이트일 수도 4. short크기: 2바이트 (16비트)부..
입력 예외 처리
·
C++
#include using namespace std;int main(){ int num; cout > num; if(cin.fail()){ //입력 실패 여부 cout ::max(), '/n'); //남은 입력 버퍼 제거 } else{ cout 📌 입력 버퍼1. 사용자의 입력 > 입력 버퍼에 저장2. 프로그램에서 데이터 요청 시 입력 버퍼에 있는 "숫자 데이터"만 읽어옴(나머지는 버퍼에 남음)3. 버퍼에 있는 데이터가 전부 소비되지 않는다면(ex 숫자만 읽어가고 남은 문자) 계속해서 버퍼에 존재4. 입력 실패 상태가 되고 계속해서 오류 발생시킴 📌 입력 버퍼 관리 방법1. cin.ignore(n, delim)입력 버퍼에 남아 있는 데이터 무시cin.ignor..
Vector
·
C++
정적 배열(array)에 대응하는 동적 배열(dynamic array)에 해당(python 리스트 같은 거)❓왜 vector일까?STL → 데이터 구조에 대해 직관적이고 수학적 개념에서 영감1. 수학적 벡터의 배열성메모리 상에서 데이터 연속 저장2. 순서와 연산 가능성연속된 데이터를 다루며 연산 지원3. 추상적인 방향성데이터가 어떤 방향으로 나아가는 순차적인 흐름 #include using namespace std;/*---------------------------생성 및 초기화---------------------------*/vector v; //비어 있는 벡터vector v1(5, 10); //크기가 5이고, 모든 요소가 10으로 초기화된 벡터vector v2 ={1, 2, 3, 4}; //리스트..
Unreal5 블루프린트 움직이는 장애물 액터 제작하기
·
Unreal
📌 회전하는 액터1. Rotating Movement 컴포넌트 사용2. 이벤트 그래프 Add Actor Local Rotation➕ Plus▪ 축을 기준으로 회전 & 반대방향▪ 부딪혔을 때 캐릭터 날리기가만히 있으면 충돌이 뚫리는 현상(움직여야 충돌 인식이 되는 현상)→ Character Movement Component의 기본 동작 방식 때문여러 트릭이 있지만 일단 충돌이 되었을 때 날리는 등의 해결을 줄 수 있음📌 이동하는 액터1. 이동거리 기준 2. 무브먼트 컴포넌트에 보간3. 삼각함수 사용📌 추가 기능1. Overlap 이벤트Delay와 Set simulate Physics, Destroy Actor 등을 이용해 다양한 상호작용 액터를 만들 수 있음만일 스태틱 메시 오버랩 이벤트가 안 일어난..
Unreal5 블루프린트 캐릭터 만들기
·
Unreal
❗ New Knowledge▪ 내장된 입력 함수💡Tip ▪ 엔진 에디터 최적화실시간 꺼주고 엔진 퀄리티 낮음프레임 표시 → t.MaxFPS 30(t.MaxFPS 0 으로 하면 되돌릴 수 있음)▪ 회전축 팁yaw : 도리도리pitch : 끄덕끄덕roll : 갸우뚱📌 캐릭터 블루프린트 생성구분선 위에는 씬 컴포넌트로 화면에 보여주는 컴포넌트구분선 아래는 액터 컴포넌트 ❓ 스프링 암 왜 사용할까?캡슐 콜라이더가 캐릭터의 충돌과 움직임 중심이기 때문!캡슐을 기준으로 메쉬와 카메라가 따라 움직이면 충돌 처리와 이동이 깔끔(캐릭터의 동작이 자연스럽고 안정적) 📌 IA와 IMCIA는 입력 동작 자체를 정의하는 개념IMC는 해당 동작을 어떻게 설정할 것인지를 정의하는 개념  (해당 프로젝트 에셋 직진 → Y기준 ..
Unreal5 블루프린트 열거형으로 가위바위보 게임 구현
·
Unreal
📌 블루프린트 열거형 만들기 📌 가위바위보 게임🔸입력 매핑 🔸컴퓨터 랜덤 선택 🔸게임 로직  🔸실행 화면
반복문
·
C++
//1. 기본for (variable : container) { // 반복할 코드}//2. auto 변수 활용for (auto ch : str) { cout ) 활용for (char& ch : str) { ch = toupper(ch); // 문자열을 대문자로 변환}cout variable: 컨테이너에서 각 요소를 저장할 변수. 컨테이너 요소의 타입과 일치하거나 auto(컨테이너 요소의 타입을 자동으로 추론)를 사용할 수 있습니다.container: 순회할 대상, 즉 배열, 문자열, STL 컨테이너(vector, map, 등)
복사 vs 참조
·
C++
#include #include using namespace std;void printByValue(vector v) { // 복사본 생성 for (int num : v) cout & v) { // 참조 사용 for (int num : v) cout vec = {1, 2, 3, 4, 5}; printByValue(vec); // 복사 발생 printByReference(vec); // 복사 없이 원본 사용 return 0;}
문자열
·
C++
🔹 문자열 연결#include #include using namespace std;int main() { string str1 = "Hello, "; string str2 = "World!"; //1. + 연산자 string result = str1 + str2; cout 🔹 문자열 대체#include #include using namespace std;int main() { string str = "Hello World"; string newStr = "C++ Programming"; // 1. 인덱스 기준 대체 str.replace(6, 5, "C++"); // 출력: Hello C++ // 2. 반복자 사용하여 ..