C++

[기술 질문] #13_6가지 디폴트 멤버 메서드 클래스의 6가지 디폴트 멤버 메서드에 대해 알아보겠습니다. Overview 개요 6가지 디폴트 메서드 대입 vs 생성, 복제 vs 이동 얕은/깊은 복사 #0. 개요 1. 클래스 제공 기본 메서드 C++의 클래스는 사용자가 별도로 정의하지 않아도, 컴파일 시점에 컴파일러가 자동으로 생성하는 몇 가지 디폴트 메서드들이 존재합니다. 클래스가 제공하는 6가지 디폴트 혹은 암시적 메서드들은 생성자, 복사 생성자, 복사 대입 연산자, 이동 생성자, 이동 대입 연산자, 그리고 소멸자가 있습니다. #1. 6가지 디폴트 메서드 1. 디폴트 생성자 #include using namespace std; class MyClass {}; int main() { MyClass* o..
[기술 질문] #12_함수 포인터 함수 포인터에 대해 알아보겠습니다. Overview 개념 대리자(Delegate) 콜백(Callback) 함수 #0. 개념 1. 함수 포인터?? // [ 반환 타입 | 포인터 이름 | 매개 변수 ] int (*funcPtr1)(int a, int b); void (*funcPtr2)(); C++는 변수 혹은 배열을 가리키는 포인터와 함께 함수를 가리키는 포인터 또한 지원합니다. #1. 대리자 1. 정의 Delegate는 범용적이고, 타입 안정성을 갖고 이벤트 처리 및 콜백 매커니즘을 구현하는 중요한 개념입니다. Unreal C++의 Delegate는 함수 호출 작업을 위임받아, 일관된 관점을 갖고 처리하는 인터페이스입니다 2. 동작 방식 델리게이트 C++ 오브젝트 상의 ..
[Unreal]#24_ParallelFor Unreal 개발 중 "ParallelFor"에 대해 알아보겠습니다. Overview 개념 코드 적용 사례 #0. 개념 1. Task Graph?? Unreal Engine의 Task System은 "Task Graph"로 사용자가 작성한 게임 플레이 코드를 비동기적으로 실행할 수 있도록 해주는 Job Manager입니다. Task Graph는 방향성 비 순환 그래프입니다. 말 그대로, 방향성 비 순환 그래프는 개별 요소들이 특정한 방향을 갖고, 서로 순환하지 않는 그래프입니다. Task Graph는 Task의 비동기적 처리, 처리에 대한 결과 대기, Prerequisite 지정(전제 조건, 혹은 어떤 Task가 실행을 모두 마쳐야 실행 가능한 Task를 의미)..
[기술 질문] #10_실수형의 문자열 변환 실수형(float, double)의 문자열 변환에 대해 알아보겠습니다. Overview 매크로 std::to_string 함수 std::stringstream 객체 + str 함수 #0. 매크로 1. 매크로 식 #include #include using namespace std; #define STRING(num) #num int main() { string float_str(STRING(123.456)); cout
[기술 질문] #9_부동 소수점 float 자료형과 부동 소수점에 대해 알아보겠습니다. Overview 고정 소수점 부동 소수점 오차 발생의 이유 무한과 NaN #0. 고정 소수점 1. 개념 컴퓨터에서 실수를 표현하는 두 가지 방식 중 "고정 소수점" 방식은 소수부의 자릿수를 미리 정하여, 고정된 자릿수의 소수만 표현하는 것입니다. 가장 왼쪽의 1Bit는 부호를 표현하고, 나머지 31Bit를 정수부와 소수부로 표현합니다. 소수부는 점을 기준으로 순서대로 채우며, 나머지 Bit는 0으로 채워줍니다. 고정 소수점 방식의 장점은 구현의 편리함입니다. 고정 소수점 방식의 단점은 비트 수 대비 표현 가능한 수의 범위와 정밀도가 낮기 때문에 실수 표현을 다루는 범용 시스템에서 사용하지 않고, 높은 정밀도를 필요로 ..
[기술 질문] #9_객체 지향 프로그래밍(OOP) 객체 지향 프로그래밍에 대해 알아보겠습니다. Overview 개념 네 가지 특성 다섯 가지 원칙 #1. 개념 1. OOP?? 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 절차 지향적 시각에서 벗어나, 실세계에 존재하고 인지하는 "객체"를 소프트웨어 세계에서 표현하기 위해 객체의 핵심적인 개념과 기능만을 추출하는 추상화를 통해 모델링하려는 프로그래밍 패러다임을 의미합니다. #2. 네 가지 특성 1. 캡슐화(Encapsulation)? OOP의 캡슐화란 데이터와 코드의 형태를 외부로부터 은닉하고, 데이터의 구조와 역햘, 그리고 기능을 하나의 캡슐 형태로 만드는 방법입니다. 예를 들면, 클래스의 private 접근 제어자 활용과 Getter..
[기술 질문] #8_컴파일러, Compiler 컴파일러에 대해 알아보겠습니다. Overview 개념 컴파일 과정 컴파일러 vs 인터프리터 C# vs C++ 게임 프로그래밍의 C++ 사용 이유 #1. 개념 1. 컴파일러?? 컴파일(Compile)은 주어진 언어로 작성된 컴퓨터 프로그램을 다른 언어의 동등한 프로그램으로 변환하는 프로세스입니다. 일반적으로, 컴파일러는 고급 언어로 작성된 코드들을 컴퓨터 언어로 변환하는 작업을 일컫습니다. 2. 인터프리터?? 인터프리터는 고급 언어로 작성된 원시 코드를 바로 실행하는 프로그램 또는 환경을 의미합니다. 일반적으로, 인터프리터는 고급언어로 작성된 원시 코드 명령어들을 한 번에 한 줄씩 읽어가며 실행하는 프로그램입니다. 소스 코드를 직접 실행하거나, 소스 코드를 다..
[Unreal_C++_DarkSoul]#13_Impact Effect Combo 공격 무기들의 충격 이팩트를 구현합니다. Overview 개요 및 설계 코드 결과 영상 개요 1. 목적 Combo 공격을 수행하는 무기들의 Impact Effect를 구현합니다. Combo 공격 무기의 충돌 이벤트에서 적절한 위치에 Impact Effect를 활성화하는 것이 목표입니다. 2. 설계 먼저, Power 컴포넌트는 데이터 멤버로 속해 있는 무기 클래스에 대한 정보를 Data Table을 통해 전달받습니다. 이때, Power 컴포넌트는 Imapct Effect 정보를 "TArray"에 저장하고, Fname과 bool 자료형은 각각 무기의 Sekeltal Mesh에 별도로 추가한 Socket 이름과 활..
[Unreal]#23_FString, FText, FName 변환 Unreal 개발 중 "FString, FText, FName"에 대해 알아보겠습니다. Overview 문자열 자료형 종류 변환 방법 요약 문자열 자료형 [Unreal]#15_FText, FString, FName [Unreal]#15_FText, FString, FName Unreal 개발 중 "FText, FString, FName"에 대해 알아보겠습니다. FName 재사용 시에도 데이터 테이블에 한 번만 저장되어 초경량 시스템을 제공합니다. 대 소문자 구분이 없고, webddevys.tistory.com 변환 방법 1. FName FString // 1. FName to FString FString String = Name..
[Unreal]#22_TTuple Unreal 개발 중 "TTuple" 자료형에 대해 알아보겠습니다. Overview 개념 코드 #0 개념 1. TTuple? 논리적으로 관련 있는 두 자료형을 하나로 묶기 위해 사용합니다. TTuple은 UObject 클래스가 아니라 TTupleBase 템플릿 구조체를 상속하므로 UPROPERTY 등 리플렉션과 함께 선언할 수 없습니다. TTuple은 한 번에 두 개의 값을 반환하고자 하는 함수 등에 활용됩니다. #1 코드 // 1. Init TTuple TestTuple = TTuple("Apple", 1); TTuple TestTuple2 = MakeTuple("Oragne", 2); // 2. Get FString String1 = TestTuple.Get(); u..
Hardii2
'C++' 태그의 글 목록 (20 Page)