일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- virtual inheritance
- dynamic_cast
- base from member
- std::cout
- vector size
- std::endl
- std::ostream
- conversion constructor
- diamond inheritance
- C++
- virtual destructor
- std::vector
- delete function
- pointer to member data
- member function pointer
- return by reference
- operator overloading
- c++ multi chatting room
- vector capacity
- this call
- increment operator
- c++ basic practice
- virtual function
- virtual function table
- new&delete
- 더 지니어스 양면포커
- discord bot
- placement new
- suffix return type
- constructor
- Today
- Total
목록전체 글 (75)
I'm FanJae.
1. Trivial 1-1. Special Member Function- 사용자가 제공하지 않으면 컴파일러가 제공하는 멤버 함수가 존재한다.① 디폴트 생성자(Default Constructor)② 소멸자(Destructor)③ 복사 생성자(Copy Constructor)④ 복사 대입연산자(Copy Assignment)⑤ 이동 생성자(Move Constructor)⑥ 이동 대입연산자(Move Assignment) ※ 보통 이러한 멤버 함수들을 Trivial 하다고 한다.2. Trivial Default Constructor※ 예제가 아주 많아서 check 함수는 한번만 보이고, 이후 부터는 임의 생략한다.① The constructor is not user-provided② T has no virtual ..
1. 기존 구현했던 Draft Logic의 문제점- 기존 Draft Logic을 생각해보면 아래와 같은 문제가 있다. ① 한 팀의 추첨을 위해 설계되었다.- 이 프로클럽이라는 모드는 보통 2팀(22인)이서 게임을 한다.- 이 드래프트는 최대 1팀에서 최대 8팀 정도까지도 사용이 가능해야 한다. (필요에 따라서는 그 이상도 가능할 것이다.)- 이에 따라서 봇을 재설계 하기로 했다. ② 기존 코드의 재사용이 어렵다.- 기존 로직은 여러 팀으로 나눠서 하기에는 코드가 복잡해질 여지가 높았다.- 이에 따라서, 로직을 아예 새롭게 구성하기로 하였다. 2. 개선 방향 2-1. 삭제 사항① pick_and_remove() 삭제def pick_and_remove(player_list, count): logging..
1. Template Method Pattern의 정의 오퍼레이션에는 알고리즘의 처리 과정만을 정의하고 각 단계에서 수행할 구체적인 처리는 서브클래스에서 정의한다. Template Method 패턴은 "알고리즘 처리과정은 변경하지 않고 알고리즘 각 단계의 처리를 서브클래스에서 재정의" 할 수 있게 한다. 1-1. 예제를 통한 Template Method Pattern의 필요성 이해 (코드의 중복)#include #include "Painter.h"class Shape{public: virtual ~Shape() {} virtual void draw() = 0;};class Rect : public Shape{public: void draw() override { std::cout..
1. new와 delete 1-1. new와 delete의 원리#include class Point{ int x, y;public: Point(int a, int b) : x{a}, y{b} { std::cout Point* p1 = new Point(1,2);- 위와 같이 쓰면 크게 2가지 작업을 진행한다. 즉, new를 실행하면 아래와 같은 2가지가 실행되는 것이다. ① 메모리할당 void *p = operator new(sizeof(Point))② 생성자호출 Point *p1 = new(p) Point(1,2);- 여기서 new(p) Point(1,2); 와 같은 표기법을 placement new라고 한다. delete p1;- 위와 같이 쓰면 크게 2가지 작업을 진행한다. 즉, delet..
1. Chapter 13 템플릿(Template) 1 1-1. 함수 템플릿의 정의① 인자로 전달되는 두 변수에 저장된 값을 서로 교환하는 SwapData라는 이름의 함수를 템플릿으로 정의해보자. - 그리고 다음 Point 클래스를 대상으로 값의 교환이 이뤄짐을 확인할 수 있도록 main 함수를 구성해보자.class Point{private: int xpos, ypos;public: Point(int x = 0, int y = 0) :xpos(x), ypos(y) { } void ShowPosition() const { cout #include template void SwapData(T& value, T..