728x90

cpp 43

2_템플릿

#include using std::cout; using std::endl; using std::cin; #include using std::string; //first, second, third, forth, fifth_basic, fifth_default, sixth, seventh, eighth, nineth, problem_1, problem_2, problem_3 #define problem_3 //함수 템플릿 : 타입이 다른 함수를 만들어내는 틀 //클래스 템플릿 : 타입이 다른 클래스를 만들어내는 틀 //기본적인 자료형에 대한 함수는 함수 오버로딩으로 대응할 수 있지만 사용자 정의 자료형에 대해서는 대응할 수 없다. //이때 함수 템플릿을 사용하면 사용자 정의 자료형에도 대응하는 함수를 만들..

1_함수 객체

#include using std::cout; using std::endl; using std::cin; //first, second, third, forth, fifth_functor, fifth_stl, sixth #define problem //a. 함수 객체는 함수처럼 호출 가능한 클래스 객체이다. //b. 함수 객체는 함수처럼 사용할 수 있으면서도 상태를 가질 수 있다. //c. 객체가 함수처럼 동작하려면 '()'연산자를 재정의해야 한다. #ifdef first void print() { cout

0_함수 포인터와 콜백 함수

#include using std::cout; using std::endl; using std::cin; //first, second, third, forth, fifth_call, fifth_callback, sixth_fp, sixth_stl #define sixth_stl //1. 함수의 이름은 함수가 시작하는 시작 주소를 의미한다. //2. 함수 포인터는 함수의 시작 주소 즉 함수의 이름을 저장하는 포인터이다. //3. 함수 포인터는 함수 시그니처가 같은 것끼리 짝을 이룬다. #ifdef first void print(int n) { cout

LinkedList 양방향 리스트 예제 <Head가 포인터가 아닌 리스트>

////////////////////////////////////////////////////////////// // 헤드노드(g_pNodeHead)부터 실제 데이터를 저장하는 이중연결리스트 // 리스트가 비어있으면 새로운 데이터를 헤드로 저장한다. // InsertLink_H : 새로운 노드가 헤드의 Next에 연결되는 전위 연결. // InsertLink_T : 새로운 노드가 테일의 Next에 연결되는 후위 연결. ////////////////////////////////////////////////////////////// header.h #pragma once #include #include // time() #include // + + #include #include using std::cout..

LinkedList 단방향 리스트 예제 <Head가 포인터가 아닌 리스트>

////////////////////////////////////////////////////////////// // 헤드노드(g_pNodeHead) Next부터 실제 데이터를 저장하는 연결리스트 // 사전에 헤드노드를 실제 노드로 생성해 두고 처리한다. (실제 노드지만 데이터는 저장 안 함) // InsertLink_H : 새로운 노드가 헤드의 Next에 연결되는 전위 연결. // InsertLink_T : 새로운 노드가 테일의 Next에 연결되는 후위 연결. // 주) 단방향 연결리스트이므로 기준 노드의 앞쪽으로 연결하는 건 불가능하다. // (이전 노드 -> 기준 노드! -> 신규 노드!! -> 다음 노드) // (이전 노드 -> 신규 노드!! -> 기준 노드! -> 다음 노드) ///..

Cpp 가변인자함수 예제

출처 : KGCA 게임 아카데미(http://www.kgcaschool.com/). 수업 예제 파일 가변 인자 함수 써본적은 있는데 내용 정리 필요. 참고코딩 도장 : 가변 인자 함수 사용하기soen.kr MSDN variableFactor.h #pragma once #include //initializer_list, vfprintf #include //initializer_list #include //va_list using std::cout; using std::endl; using std::initializer_list; bool g_debug = false; #pragma region C_style void debugOut(const char* str, ...) { va_list ap; if (g..

Cpp cast연산자들 예제

출처 : KGCA 게임 아카데미(http://www.kgcaschool.com/). 수업 예제 파일 참고 : 1) bad_cast 예외2) using과 typedef3) using namespace ###; 는 취소할 수 없다. 그래서 using문이 작동하는 범위를 정해버림(..)4) __int64 == long long 참고 header.h #pragma once #include using std::cout; using std::endl; dynamic_cast.h #pragma once #include "header.h" namespace dyn { //dynamic_cast는 vtable을 사용하기 떄문에 반드시 virtual 함수가 있어야 작동한다. class dA { public: virtual..

Cpp Template 예제 (student mgr)

출처 : KGCA 게임 아카데미(http://www.kgcaschool.com/). 수업 예제 파일 솔직히 제대로 이해 못한 예제.다시 볼 필요 있음. header.h #pragma once #include #include #include #include using std::cout; using std::cin; using std::endl; using std::string; using std::wstring; using std::wcout; using std::bad_alloc; //예외 클래스 A //사용하진 않음 class ExceptA { public: void What() { cout m_pData; return pData; } pNode = pNode->m_pNext; } return NULL..

반응형