C++프로그래밍/자료구조,알고리즘(추후확장) 15

콜백함수

※ C / C++을 이미 알고 있으나 개인적인 공부를 위해 포스팅 하는 글이므로C++에 대한 구체적인 정보를 담고 있지 않습니다.더보기# 람다와 std::fuction을 사용하고 있지 않는 포스팅 ▶ 콜백 함수 (함수포인터, 함수객체, 템플릿을 활용한...) ㆍ 전화 콜백해줘랑 같은말이다 걍  ㆍ 다시 호출하다, 역으로 호출하다 ㆍ 게임을 만들 때 콜백 개념이 자주 등장한다. ㆍ 어떤 상황이 일어나면 -> 이 기능을 호출해줘   ex) UI 스킬 버튼을 누르면 -> 스킬을 쓰는 함수 호출 # 함수 포인터class Item{public:public: int _itemId = 0; int _rarity = 0; int _ownerId = 0;};Item* FindItem(Item items[..

클래스 템플릿

※ C / C++을 이미 알고 있으나 개인적인 공부를 위해 포스팅 하는 글이므로C++에 대한 구체적인 정보를 담고 있지 않습니다.  # 클래스도 마찬가지로 버전이 달라진다고 클래스를 새로 만드는건 너무 비효율적일 것이다 - 클래스 템플릿 -  #  템플릿을 적용하기 전 코드의 모습class RandomBox{public: int GetRandomData() { int idx = rand() % 10; return _data[idx]; }public: int _data[10];};int main(){ srand(static_cast(time(nullptr))); RandomBox rb1; for (int i = 0; i ㆍ 난수를 뽑아주는 코..

템플릿 기초 (함수템블릿)

※ C / C++을 이미 알고 있으나 개인적인 공부를 위해 포스팅 하는 글이므로C++에 대한 구체적인 정보를 담고 있지 않습니다.▶ 템플릿 ㆍ 기본 개념은 함수나 클래스를 찍어내는 툴을 만든다.  ㆍ 함수 템플릿과 클래스 템플릿 두 종류가 있다.  - 함수 템플릿 -void Print(int a){ cout ㆍ 버전이 많아질수록 힘들겠다.....templatevoid Print(T a){ cout ㆍ 이 타입 자체가 정해지진 않았지만... 뭐든받겠다!ㆍ 함수의 틀을 만들어준거고 사용하는 순간 컴파일러가 만들어준다.int main(){ Print(50); Print(50.1f); Print(50.2); Print("hi"); Print(50); // 형식을 지정해..

함수객체

※ 개인적인 복습 및 공부를 위해 포스팅 하는 글이므로 구체적이지 않을 수 있으며 틀린게 있다면 지적부탁드립니다▶ 함수포인터 사용법과 단점 # 함수 포인터 사용법 복습void HelloWorld(){ cout ◆ 함수 포인터의 단점? 1) 시그니처가 안맞으면 사용할 수 없다... 예를들어 아래 코드를 보면void HelloNum(int n){ cout ㆍ 매개변수가 안맞으면 안된다는 것! 2) 상태를 가질 수 없다class Knight{public: void AddHp(int addHp) { _hp += addHp; }private: int _hp = 100;};ㆍ 이런 객체가 가지고 있는 상태를 가질 수없다. (맴버변수 등등)   ▶ 함수 객체 ㆍ 함수처럼 동작하..

함수포인터

※ C / C++을 이미 알고 있으나 개인적인 복습 및 공부를 위해 포스팅 하는 글이므로C++에 대한 구체적인 정보를 담고 있지 않습니다. ▶ 함수 포인터 int a = 10; typedef int DATA; DATA* pointer = &a; //함수의 타입 재정의typedef int(FUNC_TYPE)(int a, int b);// ㆍ 이런식으로 함수에도 이름을 정해줄 수 있다.using FUNC_TYPE = int(int a, int b);// 모던C++에선 이렇게도 표현한다FUNC_TYPE* fn;ㆍ *이 붙어있으니 포인터겠군... 타고 들어가니 함수가있네!ㆍ 이게 함수포인터의 기초다. int result = Add(1, 2);cout  ※ 활용방법? ㆍ 위 fn의 주소를 Sub로만 바꿔주면 모..