일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- C++
- C++ library
- C언어
- BOJ
- go
- a tour of go
- LOB
- C++ gui
- 공룡책
- JUCE 튜토리얼
- vim-go
- C++ gui 라이브러리
- JUCE
- 리듬게임
- JUCE라이브러리
- 백준
- 프로그래밍
- go channel
- 운영체제
- OS
- 연결리스트
- JUCE library
- tour of go
- 자료구조
- Nebula
- 알고리즘
- Docker
- 코딩
- gui
- c++ heap
- Today
- Total
목록Programming/디자인패턴 (3)
CafeM0ca
재밌는 영상을 봐서 정리해본다. reverse OOP- .h와 .cpp파일을 나눠쓰는 C++의 특성을 이용하여 상속관계에서 발생하는 virtual함수의 단점을 없앤다. 주로 게임엔진에서 씀. 위 영상을 보고 적당한 예시를 생각해보았다. 멀티플랫폼을 대상으로 작업해본게 없어서 적당한지는 모르겠지만 아무튼. 예를 들어 어떤 멀티플랫폼용 프로그램에서 간단하게 콘솔화면을 정리해주는 함수를 사용하게 되었다고 가정하자.윈도우에서는 system("cls") 를 사용하고 리눅스에서는 system("clear") 를 사용한다.환경에 맞춰서 제공해주기 위해 다음과 같이 상속했다. 일반적으로 자식 클래스들은 플랫폼 입맛에 맞게 consoleclean() 가상함수를 오버라이딩 할 것이다. (그러나 우리는 가상함수가 느리다는 ..
싱글톤 패턴(singleton pattern) 생성자가 여러차례 호출되더라도 실제로 생성되는 객체는 하나다. 최초의 생성자가 생성된 이후, 생성자는 최초의 객체를 리턴한다. 더 자세한건 pdf로 확인바람! #include #include #include using namespace std; class Singleton{ public: static Singleton* getInstance(){ if(mInstance == nullptr){ std::lock_guard guard(mtx); if(mInstance == nullptr){ mInstance = new Singleton(); } } return mInstance; } void add(){ data++; } int getData() const { ..