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
- 터미널 커서
- nonblock
- lseek
- canonical
- 레지스터
- 가상 상속
- cursor
- 가상상속
- opcode
- 어셈블리어
- IPC
- 멀티플렉싱
- termios
- multiplexing
- kevent
- termcap
- Assembly
- 클래스 상속
- 터미널 제어
- UNIX
- getch
- virtual 상속
- 서버 프로그래밍
- pipe buffer
- 명령어
- 프롬프트
- 터미널제어
- MAN
- kqueue
- 커서 제어
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