왜 기본 생성자 만 vptr (가상 테이블 포인터) 및 vtable (가상 테이블) 만 만들 수 있습니까? 매개 변수 생성자가 할 수없는 이유C++에서 vptr 및 vtable 개념
-4
A
답변
5
먼저 vtable 및 vptrs는 C++ 언어 표준에 의해 지정되지 않습니다.
구현 세부 사항입니다. 비록 현존하는 모든 C++ 구현이이 기술을 사용하여 가상 함수 디스패치를 구현한다는 것을 알고 있습니다.
이러한 구현에서는 가상 멤버 함수가있는 클래스의 모든 생성자가 필연적으로 해당 개체의 vptr을 설정합니다. 그것 없이는 작동하지 않을 것입니다. 그래서 & hellip;
” 왜 매개 변수 생성자하지 수
중 & hellip에; 단순히 잘못된 가정 일뿐입니다.
+3
또한 * no * 생성자가 vtable을 만듭니다. –
0
구현시 vtables ("Cheers and hth - Alf"에서 언급 한 것처럼 일반적인 구현 선택)를 사용한다고 가정하면 vtable 및 생성자 생성/생성은 별개의 작업입니다.
그러나 주어진 (비 추상적 인) 클래스의 모든 인스턴스는 일단 완전히 구성된 경우 동일한 vtable 집합 (여러 개의 상속 클래스가 둘 이상의 vtable을 가질 수 있음)을 갖습니다. 객체 생성 방법에 따라 다른 vtable이 없을 것입니다 (예 : 생성자에 전달되는 매개 변수, 생성자가 호출되는 등).
관련 문제
- 1. VTable 포인터 및 malloc에
- 2. Smashing C++ VPTR
- 3. vptr 및 버퍼 오버플로 문제
- 4. vtable 및 MSIL
- 5. 가상 상속의 vptr 수
- 6. vtable 및 다형성 - 함수의 오프셋
- 7. 인터페이스 vtable
- 8. 초기화 및 C에서 정수 선언 뒤에 메모리 관리 개념 #
- 9. 개념 검색 엔진 및 개념 사전
- 10. 지연 개념 이미지 개념 정의 및 구현
- 11. GCC 3.x 및 4.x의 C++ 객체에서 VTable 레이아웃 및 VTable 포인터 위치는 무엇입니까?
- 12. C# vs C++ - 형식, 상속 및 vtable
- 13. 셀레늄 및 C# 개념
- 14. jQuery 및 javascript - 개념
- 15. jdbctemplate 개념 및 C#
- 16. 콜백 개념 및
- 17. 스레드 및 블록 개념
- 18. SMTP 및 POP3 개념?
- 19. VTable 생성 안 함
- 20. vtable 오류입니다. "vtable for ETRun"에서 참조 된 곳 :
- 21. "vtable"덱 덤프 결과
- 22. Qt vtable 오류
- 23. 외부 클래스의 VTable 변경
- 24. 정의되지 않은 기호 : vtable
- 25. 연결 오류의 vtable 정의와
- 26. 정의되지 않은 vtable C++
- 27. iOS에서 vtable 오류
- 28. coredata 개념 sqlite 개념?
- 29. 개념
- 30. 개념
* "왜 기본 생성자 만 vptr (가상 테이블 포인터) 및 vtable (가상 테이블)을 만들 수 있습니까?"* 어디에서 아이디어를 얻었습니까? 그건 말이 안되요. –
생성자는 가상의 anythings을 만들지 않습니다. 어떤 타입에서 가상 함수를 가지는 것은 타입을 다형 적으로 만든다. 그러나 이것은 컴파일 타임이며 생성자와는 아무런 관련이 없다. – xaxxon