https://github.com/dolgogae/TIL/blob/master/Design_Pattern/cpp/Shape_Edit2.cpp GitHub - dolgogae/TIL: Today I Learned Today I Learned. Contribute to dolgogae/TIL development by creating an account on GitHub. github.com https://github.com/dolgogae/TIL/blob/master/Design_Pattern/cpp/Edit_val(template_method).cpp 해당, 페이지에 설명과 소스 코드를 업로드 했습니다.
추상 클래스는 순수 가상함수가 한개 이상 있는 클래스이다. 추상 클래스이기 때문에 앞서 설명한 것처럼 자기 자신의 객체를 생성할 수 없게 막아둔다. 파생 클래스 설계자에게 특정함수를 반드시 만들라고 지시하기 위해서 사용한다. java, C#의 인터페이스와 같은 역할이다. 이런 추상 클래스는 강한 결합을 약한 결합으로 바꾸는데 중요한 역할을 한다. class Camera { public: void Take() { std::cout
Override 예전 C++에서 상속받은 함수를 재정의 할때 만약 오타가 났다면 그냥 그대로 해당 클래스에 메서드가 생겨버리는 문제가 있었다. 이를 해결하기 위해서 override라는 키워드가 생겼다. #include class Base { public: virtual void foo() {} virtual void goo(int) {} }; class Derived : public Base { public: void foo()override {} void goo(int a)override {} void fooo() override {} // error void goo(double) override {} // error }; 다음과 같이 사용하면, 함수의 이름이 틀렸거나 인자의 자료형이 다르다면 오류가 ..
int main() { Dog d; Dog* p1 = &d; // ok int* p2 = &d; // error Animal* p3 = &d; // ok... 기반 클래스 포인터로 파생 클래스 객체를 가리킬수 있다. // upcasting. 객체지향의 중요한 특징 // 1. 기반 클래스 포인터로 파생 클래스 객체를 가리킬수 있다. // 2. 그런데, 기반 클래스 포인터로 기반 클래스 멤버만 접근 가능 p3->age = 10; p3->color = 10; // error. 컴파일 시간에는 무조건 p3를 Animal 이라고 생각하기 때문에 // 3. Dog 고유 멤버에 접근하려면 캐스팅 필요 static_cast(p3)->color = 10; } 위의 코드처럼 기반 클래스(Animal) 포인터(p3)로 파생..
생성자는 객체를 생성할 때, 어떤 정보를 가진 객체를 생성하게 하는지 정의 하는 것이다. class Base { public: Base() {} Base(int a) {} ~Base() {} } class Derived : public Base{ public: // Derived() {} // Derived() : Base() {} // Derived(int a) {} // Derivde(int a): Base() Derived() : Base(0) {} Derived(int a) : Base(a) {} ~Derived() {} } int main(){ Derived d(1); } 위 코드에서는 Derived 클래스가 Base라는 기반 클래스를 상속 받은 것을 볼 수 있다. 그리고 주석이 된 부분은 De..
- Total
- Today
- Yesterday
- React
- logback
- frontend
- cs
- KAFKA
- apache
- spring
- Java
- Firebase
- consumer
- Container
- Front
- API
- feign client
- broker
- rhel
- K8S
- spring boot
- Linux
- JPA
- centos
- apache kafka
- Data Engineering
- zookeeper
- NextJS
- OS
- 프론트엔드
- Producer
- docker
- 리액트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |