개발 161

C++ 기초 - Casting, inline 키워드, static 키워드, 예외 처리

암시적 캐스팅과 명시적 캐스팅형변환해당 자료형을 다른 자료형으로 변환하는 것 암시적 형변환컴파일러가 자료형을 변환해준다. 형변환이 허용되면서, 프로그래머가 명시적으로 형변환을 안 할 경우에만 암시적 캐스팅이 일어난다.int Num1 = 3;long Num2 = Num1; // 암시적 캐스팅 // int 자료형에서 long 자료형으로 형변환이 허용됩니다. // 프로그래머가 명시적으로 형변환하지 않았습니다. // 따라서 암시적 형변환이 일어납니다. C++의 명시적 형변환 4가지업 캐스팅(Up-Casting) vs 다운 캐스팅(Down-Casting)업 캐스팅: 자식 클래스에서 부모 클래스로의 형변환다운 캐스팅: 부모 클래스에서 자식 클래스로의 형변환static_cast()컴파일 타임에 자료형을 검사하여..

C++ 기초 - string, File I/O

C 언어에서는 문자 배열의 크기를 런타임 중에 늘릴 수 없다. 하지만 C++에서 string을 사용하면, 필요에 따라 길이를 조절할 수 있으며 문자열 수정에 관한 여러 API도 사용 가능하다.// Main.cpp#include #include int main(void){ std::string FirstName; std::string LastName; std::string FullName; /* in C. char FirstName[20]; char LastName[20]; char FullName[20]; */ // 대입 연산과 이어붙이기 연산이 가능합니다. std::cout > FirstName; FullName = FirstName; std::cout > LastName; FullName = Firs..

C++ 기초 - 상속과 다형성

자식 클래스 정의 방법class 자식클래스명 : public 부모클래스명{};class Cat: public Animal{}; 상속 관계에서 생성자/소멸자생성자부모 클래스의 생성자 호출 -> 자식 클래스의 생성자 호출소멸자자식클래스의 소멸자 호출 -> 부모 클래스의 소멸자 호출 다형성// Animal.h#pragma onceclass Animal{public: Animal(); virtual ~Animal(); //void MakeSound(); virtual void MakeSound(); // 자식 클래스마다 행동을 다르게 구현해야하는 멤버 함수 앞에 virtual 키워드를 붙여 줍니다. //void Eat(); virtual void Eat(); // virtual 키워드가 붙은 멤버 함..

카테고리 없음 2026.04.07

C++ 기초 - 복사 생성자와 오버로딩

오버로딩반환형은 오버로딩의 판단 기준이 안 된다. 이름과 매개변수가 기준이다. 복사 생성자복사 생성자(Copy Constructor)생성자의 오버로딩 중 하나.매개변수 자료형이 같은 클래스의 참조 자료형인 생성자를 복사 생성자라고 부른다.새 객체를 생성 할 때, 기존에 만들어져 있던 객체를 통해 생성하고자 할 때 호출됩니다. 다시 말해, 같은 클래스에 속한 다른 객체를 참조하여 새로운 객체를 초기화한다. ThisClass(const ThisClass& InOther); // 이런 형태의 생성자를 복사 생성자라 부릅니다. // 자기 자신 자료형의 참조를 인자로 받으면 복사 생성자라고 부릅니다. // MyVector.hMyVector(const MyVector& InOther) {};// Main.cpp..

TA 코스 게임 분석 과제 - 스컬걸즈

스컬걸즈는 2013년도에 출시된 2D 대전격투 게임이다. 게임 배경은 소원을 들어준다는 스컬 하트를 차지하기 위해 캐릭터들이 싸움을 벌이는 스토리로, 나온지 10년이 넘었지만 아직도 새로운 캐릭터가 간간이 업데이트되고 있다. 일단 콤보를 하나 외워놓으면 아케이드 모드 최고난이도라도 쉽게 클리어 가능하기 때문에, 스트레스 해소용으로 가끔 플레이한다. 이 게임은 메인 아트에서도 알 수 있듯, 개성있는 캐주얼 호러풍 캐릭터 디자인과 콘셉트가 포인트이다. 비주얼 뿐만 아니라 사운드도 미국 코믹스스러운 캐릭터 디자인에 맞는 재즈풍 음악이라서 게임의 분위기를 잘 살려준다. 내가 플레이하는 캐릭터는 세레벨라뿐이긴 하지만, 이미지로는 다크하면서 우아한 스퀴글리가 좀 더 마음에 든다. 풀 2D 수작업으로 이루어진 ..

언리얼 C++기초 세팅

디버깅을 위한 에디터 심볼언리얼 소스코드에 있는 함수들이 의도대로 동작하지 않을 때, 디버깅을 위한 에디터 심볼 기능이 있으면 추적할 수 있다.용량이 상당하다. 언리얼 C++ 프로젝트를 생성한 뒤 지워도 되는 폴더와 지우면 안되는 폴더작업을 진행하지 않을 때는 중요 폴더만 남겨두고 폴더 삭제해주면 언리얼 프로젝트의 크기를 줄일 수 있다. 언리얼 C++ 프로젝트 비주얼 스튜디오를 사용할 때는 시작프로젝트로 설정을 해줘야한다. uProject 파일에는 프로젝트를 언리얼 에디터로 열기 위한 정보가 저장되어 있다. { "FileVersion": 3, "EngineAssociation": "5.5", // 언리얼 버전 정보. "Category": "", "Description": "", "Mod..

C++ 기초 - 생성자와 소멸자

메모리 릭을 추적해주는 함수 // Main.cpp#include // _CrtSetDbgFlag(), _CrtSetBreakAlloc()class Human{public: float Height; float Weight;};int main(void){ _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); // 메모리 릭 추적. // _CrtSetBreakAlloc(161); // 메모리 릭 지점에 자동으로 중단점을 걸어주는 함수. Human* Park = new Human(); //delete Park; //Park = nullptr; return 0;} 이 코드를 실행한 후 디버그 창을 보면 메모리 릭이 나는 것을 아래와 같이 확인할 수 ..

C++ 기초 - 참조

참조(Reference)이미 존재하는 변수명에 또 하나의 별명을 붙여주는 문법. 즉, 변수의 별명을 지어주는 문법입니다.int Number = 10;int& Num = Number; 참조는 NULL 대입 불가.포인터는 NULL 대입 가능.int& Reference = NULL; // 컴파일 에러. // 참조는 반드시 존재하는 변수를 참조해야 함.참조는 선언과 동시에 반드시 초기화.포인터는 초기화 안해도 컴파일 가능.int& Reference; // 컴파일 에러참조는 참조하는 대상을 바꿀 수 없음. Reference와 Swap() 함수// Main.cpp#include void SwapWithValue(int LHS, int RHS){ std::cout // Main.cppstruct Script{..

코딩 학습 2026.04.04

C++ 기초 - Console IO

Manipulatorcout 키워드를 통한 피연산자의 출력 형식(8진수, 16진수, 문자...)을 결정하는 키워드.// In C Language...int Number = 10;printf("%x\n", Number); // number를 16진수 출력형식으로 출력.// In C++ Language...int Number = 10;std::cout std::cout pos는 positive의 약자로 양수를 의미setw() 빼고 나머지는 한번 설정하면 계속 유지분할 컴파일의 필요성선언과 구현을 분리해놓는 이유: 컴파일 때문기존 컴파일 내용은 빌드했을 때 저장이 되는데, 수정 후 재컴파일할 때는 수정된 부분만 재컴파일된다. 그런데...헤더 바꿈 → 그 헤더 include한 모든 .cpp 재컴파일.cpp ..

C++ 배치고사 선택 문제

Map 활용: 데이터 자동 정렬, 가격 자동 갱신 문제상점에 등록될 아이템은 특정 규칙에 따라 자동으로 정렬되여야하며, 동일한 아이템이 들어올 경우 가격 갱신 로직이 실행되어야 합니다.요구사항자료구조 정의: Item 구조체를 Key로, int(가격)를 Value로 하는 std::map을 사용하십시오.정렬 기준1순위: 공격력(attackPower) 내림차순 (높은 것이 앞)2순위: 공격력이 같다면 희귀도(rarity) 오름차순 (낮은 것이 앞)3순위: 위 두 조건이 모두 같다면 이름(name) 오름차순데이터 처리 (tryInsert 함수):필터링: 공격력이 50 미만인 아이템은 상점에 등록하지 않고 무시합니다.중복/갱신: 이미 상점에 있는 아이템(이름, 공격력, 희귀도가 모두 일치)이 다시 들어올 경우, ..