반응형 디자인패턴12 [Design Pattern] Container Linked List와 같은 Container를 만들때 사용하는 전통적인 기법과 이에 대한 장점을 활용하고, 단점을 극복하는 방법에 대해 알아보자. Single Linked List의 예 #include using namespace std; struct Node { int data; Node* next; Node(int d, Node* n) : data(d), next(n) {} }; class slist { Node* head = 0; public: void push_front(int n) { head = new Node(n, head); } int front() { return head->data; } }; int main() { slist s; s.push_front(10); s.push_front.. 2021. 2. 5. [Design Pattern] Bridge MP3로 생각하기 다음과 같이 가상의 IPod이 있고 People은 이를 Play/Stop 할 수 있다. #include using namespace std; class IPod { public: void Play() { cout 2021. 2. 2. [C++]Design Pattern - STL과 Adapter 시나리오 STL에 stack이 존재하지만 stack을 한번 만들어보자. 기존 list는 양쪽 방향으로 쓰기가 가능하다. 이 양쪽 방향 쓰기를 단방향 쓰기로 만들어준다면 stack처럼 사용할 수 있을 것이다. 또한 list의 함수 이름을 stack처럼 보이도록 변경해주면 될 것이다. #include #include #include #include using namespace std; template class Stack : public list { public: void push(const T& a) { list::push_back(a); } void pop() { list::pop_back(); } T& top() { return list::back(); } }; int main() { Stack s; .. 2020. 12. 30. [C++]Design Pattern - Adapter 구현 시나리오 다음과 같이 Rect, Circle의 구성으로 도형을 그리는 기능이 이미 구현되어있다. 그리고 도형 외에 글자를 출력할 수 있는 TextView도 준비되어 있다. #include #include #include "TextView.cpp" using namespace std; class Shape { public: virtual void Draw() { cout 2020. 12. 30. 이전 1 2 3 다음 반응형