C++의 의사 가상 함수 란 무엇입니까?C++의 의사 가상 함수 란 무엇입니까?
답변
AFAIK 공식 정의가있는 곳이면 어디에도 나오는 용어가 아닙니다.
아마도 누군가가 simulated dynamic binding에 대해 이야기하고 있습니까?
편집 : 신속한 웹 검색은 누군가 자신의 동적 다형성을 구현했을 수 있으므로 자체 vtable을 가질 수 있음을 제안합니다. "가상 버츄얼"함수는 C++ 컴파일러가이를 이해할 때 실제로 가상 함수가 아닌 그 메커니즘을 통해 액세스되는 함수가됩니다.
이 작업을 수행하는 한 가지 이유는 multi-dispatch을 구현하는 것입니다.
우리에게 지적 할만한 문맥이 있습니까?
예, 시뮬레이트 된 동적 바인딩과 관련된 것으로 보입니다. 컨텍스트는 3D 엔진에서 다중 스레드 애니메이션 및 메시 변형 시스템을 최적화하는 메커니즘이므로 의미가 있습니다. 고마워. –
선언이있는 가상 함수입니다.
class Foo
{
int* bar;
Foo() : bar(0) { bar = new int; }
virtual ~Foo() { delete bar; }
}
이것은 선언에서 무언가를하기 때문에 의사 가상 소멸자가 있습니다. 다음은 순수 가상 선언입니다.
class Foo
{
Foo() { }
virtual ~Foo()=0;
}
적어도이 방법을 배웠습니다.
(*multiMethod[ index ])()
multiMethod 어레이 :
난 (이들은 대개 선택기 런타임 코드에 의해 결정된 오프셋 함수 포인터들의 어레이를 사용하여 구현된다 ++ C에서) multimethods를 참조하는 데에 용어를 들었다 함수 포인터의 배열입니다.
나는이 용어를 들어 본 적이 없습니다. 나는 그들이 Non-Virtual Interface idiom (NVI)에 대해 이야기하고 있거나 함수 포인터의 디스패치 테이블을 만드는 것에 대해 이야기하고있는 것으로 추측 할 수 있습니다.이 포인터는 C에서 다형성/가상 함수를 구현할 수있는 방법입니다 (사실 C++ 컴파일러가 어떻게 그것을 배후에서 수행하는지입니다).).
질문을 읽을 때 NVI가 가장 먼저 떠오른 것입니다 .... – Dan
- 1. 가상 프록시 란 무엇입니까?
- 2. 가상 인덱스 란 무엇입니까?
- 3. 가상 어댑터 란 무엇입니까
- 4. Objective-C의 "범주"란 무엇입니까?
- 5. C의 "개인 헤더"란 무엇입니까?
- 6. 해시 함수 란 무엇입니까?
- 7. Y 함수 란 무엇입니까?
- 8. 가상 디렉터리 란 무엇입니까? 그것의 용도는 무엇입니까?
- 9. Objective-C의 데이터 구조 란 무엇입니까?
- 10. 자바에서 해시 함수 란 무엇입니까?
- 11. 함수 선언에서 DEFAULT_CC 란 무엇입니까?
- 12. PHP의 재귀 함수 란 무엇입니까?
- 13. Objective-C의 OR 함수
- 14. c의 scanf() 함수
- 15. c의 인라인 함수
- 16. Objective C의 함수 포인터
- 17. Objective-C의 함수 구문
- 18. C의 일반 함수 포인터
- 19. 함수 포인터 및 가상 함수
- 20. 메모리에 디렉토리를 만드는 방법은 무엇입니까? 의사 파일 시스템/가상 디렉터리
- 21. current_user_can() 함수 매개 변수 란 무엇입니까?
- 22. "가변 개수의 매개 변수가있는 함수"란 무엇입니까?
- 23. ASP.NET AJAX에서 $ create 함수 란 무엇입니까?
- 24. PHP의 트리거 오류 함수 란 무엇입니까?
- 25. 가상 함수 테이블 오프셋
- 26. 가상 함수 오버라이드 문제
- 27. 가상 함수 및 클래스
- 28. 생성자의 가상 함수 호출
- 29. 순수 가상 함수 호출
- 30. 가상 멤버 함수 필요성
컨텍스트는 3D 엔진에서 다중 스레드 애니메이션 및 메시 변형 시스템을 최적화하는 메커니즘입니다. –