728x90

공부 중 메모/수업 예제 (KGCA) 29

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..

Cpp 클래스 템플릿 부분 특수화 예제

출처 : KGCA 게임 아카데미(http://www.kgcaschool.com/). 수업 예제 파일. OriginalTemplate.h #pragma once // 어차피 멤버 함수를 클래스 템플릿 외부에 정의해서 다른 파일로 분리할 수 없으니 // 클래스 템플릿 안에다가 인라인으로 넣어버림. // 기본 타입 클래스 템플릿 template class Bag { T* elem; int size; int max_size; public: void add(T t) { T* tmp; if (size + 1 >= max_size){ max_size *= 2; tmp = new T[max_size]; for (int iCnt = 0; iCnt < size; iCnt++) { tmp[iCnt] = elem[iCnt];..

Cpp 함수 템플릿 예제

출처 : KGCA 게임 아카데미(http://www.kgcaschool.com/). 수업 예제 파일. 참조 사이트 FunctionTemplates.h #pragma once #include #include #include //기본적인 함수 템플릿 template T add(T x, T y) { T result = x + y; return result; } //함수 템플릿의 특수화 template char* add(char* x, char* y) { char* result = new char[255]{ 0, }; strcat_s(result,100, x); strcat_s(result,100, y); return result; } //함수 템플릿을 특수화한 것 template double add(doubl..

Cpp 예외클래스 예제

출처 : KGCA 게임 아카데미(http://www.kgcaschool.com/). 수업 예제 파일. MSDN 예외처리 부분 MSDN Exception class TODO : 더 자세히 공부할 것(..) ExceptionHandlingSample.cpp #include using std::endl; using std::cout; using std::cin; //exception const char* account = "1234-5678"; //계좌번호 int sid = 1122; //비밀번호 int balance = 1000; //잔액 int sk = 0; class AccountExpt //예외 클래스 { char acc[10]; int sid; int secretkey; public: void wha..

Cpp 다형성 예제(2) (직원 급여 관리 예제)

Employee.h #pragma once #include #include #include using std::cout; using std::cin; using std::endl; using std::string; class Employee //기본 추상 클래스 { protected: stringm_sName; intm_iPositionLevel; public: string getName() const { return m_sName; } virtual int getPay() = 0;//순수가상함수 //급여를 계산하는 함수 void PrintData(); Employee(string name, int PL); }; Employee.cpp #include "Employee.h" void Employee::P..

Cpp 다형성 예제(1)

Figure.h #pragma once #include using std::cout; using std::endl; class Figure //기본 부모 클래스 { protected: int x; //중심의 x좌표 int y; //중심의 y좌표 int width; //가로길이 int height; //세로길이 public: void move(int x, int y); void resize(int width, int height); virtual void draw();//가상함수 void shape(); //가상함수가 아님 public: Figure(); Figure(int x, int y, int width, int height); virtual ~Figure(); }; Figure.cpp #includ..

반응형