C++23 5. 템플릿 기본 문법 - typename, template 본 글은 코드누리의 Template Programming 강좌를 개인 학습 목적으로 정리한 글 입니다. https://www.ecourse.co.kr/course-status/ typename 키워드에 대한 개념 #include #include using namespace std; using namespace boost::typeindex; class Test { public: enum {value1 = 1}; static int value2; typedef int INT; using SHORT = short; class InnerClass {}; }; int Test::value2 = 3; int main() { Test::INT i = 3; Test::SHORT s = 5; int a = Test::.. 2022. 9. 28. CPP_1. AssortRock 14일차 오프라인 수업_220926 양방향 링크드리스트 첫 날에 시험 봤던 게 링크드리스트여서 이제는 좀 친숙하게 느껴진다. 이번 구현은 header와 trailer를 사용한 구현 namespace ya { template struct Node { Node() : mData(NULL) , mNext(nullptr) , mPrev(nullptr) { } Node(const T data) : mData(data) , mNext(nullptr) , mPrev(nullptr) { } ~Node() { } T mData; Node* mNext; Node* mPrev; }; template class list { public: private: size_t mCount; Node* mfirst; Node* mlast; }; } Node* mfirst와.. 2022. 9. 27. CPP_1. AssortRock 13일차 오프라인 수업_220923 동적 배열 동적 배열의 작동 원리에 대해서는 stl vector를 참고하여 제작 vector의 최초 capacity는 클래스에서 static으로 선언하여 모든 인스턴스가 공유하도록 함 namespace ya { template class vector { public: private: static constexpr size_t DEFAULT_CAP = 32; T* mArr; size_t mSize; size_t mCapacity; }; } size는 실제로 벡터가 담고 있는 요소의 개수 capacity는 실제 할당된 메모리 동적 배열의 작동 원리는 size >= capacity일 때마다 capacity *= 1.5~2를 해서 옮겨 담는 것 실제 stl vector는 이 구현이 좀 더 복잡함 vector(s.. 2022. 9. 27. 4. 템플릿 기본 문법 - 클래스 템플릿 본 글은 코드누리의 Template Programming 강좌를 개인 학습 목적으로 정리한 글 입니다. https://www.ecourse.co.kr/course-status/ 클래스 템플릿의 기본 모양 멤버 함수에서 사용하는 클래스 템플릿 이름은 Complex 대신 Complex라고 사용할 수 있다. 템플릿 인자를 초기화할 때는 {} (일관된 초기화 기법)을 사용하면 됨 template class Point { T x, y; public: Point(T a = {}, T b = {}) : x(a), y(b) { } Point getPoint() const { return Point(x, y); } }; 템플릿 멤버 함수를 외부에 구현할 때 외부에도 template를 적어주어야 함 그리고 템플릿 이름도 .. 2022. 9. 27. 이전 1 2 3 4 5 6 다음