UnrealEngine/C++

·UnrealEngine/C++
1. 스택 기반 객체 생성int main() { Car myCar; myCar.StartCar(); return 0;}특징메모리 할당 위치:객체 myCar는 스택(stack)에 생성된다.main 함수가 종료되면 스택 메모리에서 자동으로 해제된다.수명:myCar는 생성된 함수(여기서는 main)의 스코프(scope) 내에서만 존재한다.스코프를 벗어나면 객체가 자동으로 소멸되므로 delete가 필요하지 않다.성능:스택 할당은 힙 할당보다 빠르며 오버헤드가 적다.안정성:메모리 누수가 발생하지 않으며, 개발자가 별도로 메모리를 해제할 필요가 없어 안전하다.2. 힙 기반 객체 생성int main() { Car* myCar = new Car(); myCar->StartCar(); d..
·UnrealEngine/C++
컴포지션(Composition)컴포지션은 객체를 설계하고 구조화하는 방식 중 하나로, 다른 객체를 조합하여 더 복잡한 기능을 구현하는 것상속(Inheritance)과 대비되는 개념으로, “객체가 다른 객체를 소유하거나 포함”하는 관계를 통해 재사용성과 유연성을 높이는 방법이다.객체지향에서 컴포지션의 정의컴포지션은 객체가 다른 객체의 인스턴스를 자신의 멤버 변수로 포함하여 관계를 형성하는 방식이다.“Has-a”관계를 표현한다.ex) 자동차(Car)는 엔진(Engine)을 “소유”한다. → Car has an Engine.상속과 컴포지션의 차이상속(Inheritance)컴포지션(Composition)“Is-a”관계를 표현 (ex: 사과는 동물이다)“Has-a”관계를 표현 (ex: 자동차는 엔진을 가진다)부모..
·UnrealEngine/C++
순서와 상관이 있다면 → 순열순서와 상관이 없다면 → 조합1. 순열(Permutation)이란?순열은 순서를 고려하여 주어진 요소 중에서 몇 개를 선택해 나열하는 경우의 수를 말합니다.EX) [A, B , C] 중에서 두 개를 선택하는 순열 → AB, AC, BA, BC, CA, CB(총 6가지)2. 조합(Combination)이란?조합은 순서를 고려하지 않고 주어진 요소 중에서 몇 개를 선택하는 경우의 수를 말합니다.EX) [A, B, C] 중에서 두 개를 선택하는 조합 → AB, AC, BC (총 3가지)순열과 조합을 C++로 구현하기1.C++의 next_permutation을 이용한 순열 구현 헤더에서 제공하는 next_permutation을 사용하면 간단하게 순열을 구현할 수 있다.#include..
·UnrealEngine/C++
C++에서 함수에 데이터를 전달하는 방법은 크게 두 가지로 나뉜다.값에 의한 호출참조에 의한 호출오늘은 이 두 방법의 데이터 전달 방식과 함수 내에서 값이 처리되는 방식에서의 차이를 알아본다.1. 값에 의한 호출(Call by Value)값에 의한 호출은 원본 데이터를 복사해서 함수에 전달한다.함수 내부에서 값이 변경되어도 원본 데이터에는 영향을 받지 않는다.#include using namespace std;void changeValue(int x) { x = 42; // 복사된 값만 변경}int main() { int a = 10; changeValue(a); cout 값에 의한 호출은 원본 데이터를 안전하게 유지하지만, 복사가 발생하기 때문에 데이터 크기가 크거나 복사가 잦을 경우 성능에 영향을 줄..
·UnrealEngine/C++
인터페이스(Interface)란?인터페이스란 객체가 반드시 구현해야 할 행동을 지정하는데 활용하는 타입다영형의 구현, 의존성이 분리된 설계에 유용하게 활용언리얼 C++ 인터페이스의 특징인터페이스를 생성하면 두 개의 클래스가 생성됨U로 시작하는 타입 클래스I로 시작하는 인터페이스 클래스객체를 설계할 때 I 인터페이스 클래스를 사용U타입 클래스 정보는 런타임에서 인터페이스 구현 여부를 파악하는 용도실제로 U타입 클래스에서 작업할 일은 없다.인터페이스에 관련된 구성 및 구현은 I 인터페이스 클래스에서 진행C++인터페이스의 특징추상 타입으로만 선언할 수 있는 Java, C#과 달리 언리얼은 인터페이스에서도 구현이 가능언리얼 C++인터페이스를 사용하면, 클래스가 수행해야 할 의무를 명시적으로 지정할 수 있어 좋은..
·UnrealEngine/C++
메모리 구조와 정적할당과 동적할당스택(stack)지역변수, 매개변수, 함수가 저장되며 컴파일 시 크기가 결정함수가 함수를 호출하는 등에 따라 런타임시에도 크기가 변경힙(heap)힙은 동적 할당할 때 사용되며 런타임 시 크기가 결정데이터 영역BSS 영역과 Data영역으로 나누어지고 정적 할당에 관한 부분을 담당BSS 영역전역변수, static, const로 선언되어 있는 변수 중 0으로 초기화 또는 초기화가 어떠한 값으로도 되어 있지 않은 변수들이 이 메모리 영역에 할당Data 영역전역변수, static, const로 선언되어있는 변수 중 0이 아닌 값으로 초기화된 변수가 이 메모리 영역에 할당코드영역Code / Text 영역프로그램의 소스코드가 할당이어서 배열에서의 정적 할당과 동적 할당을 확인해보자C+..
sonsazang
'UnrealEngine/C++' 카테고리의 글 목록