다이아몬드 상속문제를 해결 할 수 있는 가상 기본 클래스에 대해 알아보도록 하자. 만일 저상황이 발생할시 B1, B2에다가 부모 클래스를 상속 시킬때 virtual을 붙혀주고 C에다가 A의 생성자를 별도로 호출 해주면 된다. C(int a, int b, int c) : B1(b), B2(c), A(a) {} // int main() { Base b; Derived d; //std::vector my_vec와 똑같이 작동한다. std::vector my_vec; my_vec.push_back(b); my_vec.push_back(d); for(auto & ele : my_vec) ele.get().print(); return 0; } // I'm Base // I'm Derived // ~Derived /..
인터페이스 클래스란? 내부에 들어있는 함수들이 모두 pure virtual function일 경우 인터페이스 클래스이다. class Animal { protected: string m_name; public: Animal(std::string name_in) : m_name(name_in) {} string getName() { return m_name; } virtual void speak() const = 0; // the pure virtual function }; class Cow : public Animal { public: Cow(string name) : Animal(name) {} virtual void speak() const { cout
- Total
- Today
- Yesterday
- 강의
- 프로그래밍
- 파이썬
- call by value
- 재귀함수
- 자료구조
- 배열
- 종류
- 공부
- call by reference
- 간접 지정
- 형승격
- C
- Algorithm
- 1차원 배열
- 알고리즘
- 직접 지정
- 2차원 배열
- 다차원 배열
- 회전리스트
- 구조체
- 포인터
- 비트필드
- 시간복잡도
- 3차원 배열
- 공간복잡도
- inflearn
- codeit
- timecomplexity
- 공용체
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |