Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- UNIX
- 클래스 상속
- 프롬프트
- kevent
- 터미널 커서
- canonical
- multiplexing
- 가상상속
- 터미널제어
- kqueue
- nonblock
- cursor
- lseek
- MAN
- termcap
- opcode
- getch
- IPC
- 멀티플렉싱
- 명령어
- pipe buffer
- Assembly
- virtual 상속
- 커서 제어
- 가상 상속
- 터미널 제어
- 서버 프로그래밍
- termios
- 레지스터
- 어셈블리어
Archives
- Today
- Total
목록c++ (1)
오늘도 밤이야
[C++] 가상 상속(Virtual Inheritance)의 메모리 할당 구조 및 순서 탐구
C++ 클래스 구조의 특징인 다중 상속에서 Dreadful Diamond(죽음의 다이아몬드) 구조 문제를 해결하기 위해 가상 상속을 사용하게 되었다. 클래스 상속 구조는 다음과 같이 구성했다. 문제는 D의 복사 생성자를 사용할 때 일어났는데, 받아온 ref 객체를 복사하지 못하고 A의 기본 생성자를 호출하는 문제가 발생했다. D에서 B와 C의 복사 생성자를 호출하고, B와 C에서 A의 복사 생성자를 호출함에도 A의 기본 생성자가 호출되었다. 작성했던 코드는 다음과 같다. #include using namespace std; class A { private: int a; public: A(); A(const A&); virtual ~A(); }; A::A() { cout
언어/C++
2021. 5. 4. 13:22