전체 글153 [C++] 순수 가상 함수, 추상 클래스, 그리고 인터페이스 C++ 에서는 "부모 클래스로 자식 객체를 관리" 하는 다형성이라는 개념이 있습니다. 이 개념을 확장하면 순수 가상 함수, 추상 클래스, 인터페이스라는 용어들이 등장하는데 이 글에서는 이와 관련된 내용을 정리해 보겠습니다. 1. 순수 가상 함수 (Pure Virtual Function)순수 가상 함수는 함수를 선언만 하고 본체 (구현부) 를 작성하지 않는 함수입니다.문법적으로는 함수 선언 뒤에 = 0; 을 붙여 표현합니다.함수를 순수 가상 함수로 선언하면, 부모는 자식 클래스에게 "이런 기능이 반드시 있어야 해" 라고 지시하는 입장인 것이고, 실제 동작은 상속받는 자식이 정의하도록 강제합니다.class Animal {public: // 순수 가상 함수: 본체가 없고 = 0이 붙음 virtua.. 2026. 2. 27. [C++] Enum 의 진화와 실무적인 절충안 C++ 프로젝트에서 상태값이나 타입을 정의할 때 enum은 거의 필수적으로 사용됩니다. 하지만 프로젝트 규모가 커질수록 enum을 어떻게 관리하느냐가 코드의 가독성과 유지보수성에 직접적인 영향을 줍니다. 이번 글에서는 전통적인 방식에서 시작해 C++11의 변화, 그리고 실무에서 자주 사용하는 절충안까지 흐름으로 정리해 보겠습니다. 1. 전통적인 C 스타일 enum 가장 단순하고 직관적인 방식입니다.enum MonsterType { Slime, Skeleton, Boss, Max};초기에는 문제가 없어 보이지만, 프로젝트가 커지면 열거자 이름이 전역 공간으로 노출되면서 충돌 위험이 생깁니다. 예를 들어 다른 시스템에서도 비슷한 이름을 사용하게 됩니다.enum ItemType { .. 2026. 2. 26. [C++] static 완전히 이해하기 C++에서 static 은 처음 접할 때 가장 헷갈리는 키워드 중 하나입니다. 일반 함수에 붙으면 파일 내부에서만 사용되고, 클래스 멤버에 붙으면 객체 없이 전역처럼 사용됩니다. 겉보기에는 서로 정반대처럼 보이기 때문에 혼란이 시작됩니다.이 글에서는 static 을 하나의 관점으로 정리합니다.“밖으로 떠돌아다니지 못하게 특정 범위에 고정시키는 것” 여기서 중요한 점은 무엇에 고정되느냐가 상황에 따라 다르다는 것입니다. static 이 처음 등장한 이유C/C++ 환경에서는 여러 개의 소스 파일을 컴파일한 뒤 하나의 프로그램으로 연결 (link) 합니다. 이때 각 파일에 정의된 함수 이름은 기본적으로 전역 심볼로 공개됩니다.// fileA.cppvoid helper() {}// fileB.cppvoid he.. 2026. 2. 25. [UE5] EditAnywhere 와 BlueprintReadWrite 의 의미 언리얼에서 UPROPERTY 옵션 중에서 EditAnywhere 과 BlueprintReadWrite 에 대해 알아보겠습니다. 먼저 EditAnywhere 에서 “Anywhere” 는 모든 곳에서 접근 가능하다는 뜻이 아니라, 값을 수정할 수 있는 편집 위치가 여러 곳이라는 의미입니다. 언리얼에서는 같은 변수라도 여러 위치에서 값을 변경할 수 있습니다.예를 들어 다음과 같은 위치가 존재합니다. • 블루프린트 기본값 • 레벨(월드) 에 배치된 액터 인스턴스 • 부모 블루프린트를 상속한 자식 블루프린트 이 편집 위치 범위를 어떻게 허용할 것인지에 따라 Edit 옵션이 나뉩니다.EditAnywhere이 옵션을 사용하면 여러 편집 위치에서 값을 수정할 수 있습니다. • 블루프린트 기본값에서 .. 2026. 2. 25. [C++] 헤더 파일에서 Namespace와 const를 사용해 설정값 관리하기 C++ 프로젝트에서 윈도우 크기나 게임 설정값을 여러 클래스에서 공유해야 할 때, 가장 효율적인 방법은 namespace와 const를 조합하여 헤더 파일에 선언하는 것입니다. 1. 기본 구조 (Config.h)namespace를 사용해 이름 충돌을 방지하고, const를 붙여 상수로 선언합니다.#ifndef CONFIG_H#define CONFIG_Hnamespace WindowConfig { const int Width = 1280; const int Height = 720;}#endif 2. 왜 반드시 const를 붙여야 하는가?헤더 파일에 int Width = 1280;과 같이 일반 변수를 선언하고 여러 .cpp 파일에서 #include하면 중복 정의(Multiple Definition.. 2026. 2. 18. [UE5] Box Component 는 어떨때 사용하면 좋을까? 언리얼에서 박스를 배치하려 하면 두 가지 선택지가 있습니다. • Static Mesh (Cube) • Box Component 이 둘은 겉보기는 비슷하지만, 역할은 완전히 다릅니다.핵심 차이는 다음 한 줄로 정리됩니다. 보여야 하는가, 아니면 판정만 필요할 뿐인가? 1. 역할의 본질 차이Static Mesh (Cube) • 폴리곤, 텍스처, 머티리얼을 가진 시각적 오브젝트 • 화면에 렌더링됨 • 빛, 그림자, 반사 등 렌더링 영향 받음Box Component • 렌더링되지 않는 수학적 볼륨 • 위치와 크기만 존재 • 충돌 및 트리거 판정용 2. Box Component : 판정을 위한 최소 단위C++에서 Rectangle rect;를 선언하면 화면에는 보이지 않지만 충돌 계.. 2026. 2. 16. 이전 1 2 3 4 ··· 26 다음