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