| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > где находится реализация CWinApp::Run |
| Автор: pms 23.6.2006, 01:14 |
| А скажите, пожалуйста, кто знает, почему CWinApp::Run объявлена как virtual. И где находится реализация этой функции? |
| Автор: SergeCpp 23.6.2006, 08:51 | ||||||
| Виртуальная она для того, чтобы Вы могли её при желании переопределить в производном классе. APPCORE.CPP
THRDCORE.CPP
Пример переопределения
|
| Автор: pms 30.6.2006, 10:33 | ||||
| Благодарю за ответ. Но вот еще, что не совсем понятно. Почему нельзя добраться до реализации этой функции обычным путем, т.е. по цепочке предок->потомок. Вот что получается: MyProgram.h
<Go To Declaration of CWinApp> AFXWIN.H
Т.е. получается что она изначально объявляется в CWinThread как virtual, наследуется в CWinApp снова без реализации, далее в CMyProgramApp, но и здесь ее реализации нет. Что не верно в моих рассуждениях? |
| Автор: SergeCpp 30.6.2006, 10:40 |
| Реализация представлена Вам в первом моём ответе... Первое окно с кодом — это реализация CWinApp::Run() Второе окно с кодом — это реализация CWinThread::Run() http://www.research.att.com/~bs/glossary.html#Gvirtual-member-function http://www.research.att.com/~bs/glossary.html#Gpure-virtual-function |
| Автор: pms 30.6.2006, 11:42 |
| Да я понял, что это реализация. Но я хочу узнать как компилятор "узнает", что это есть реализация этой функции? Прошу прощения за недостаточную внятность вопросов... |
| Автор: SergeCpp 30.6.2006, 11:54 |
| С указателем на объект связана таблица vtable, где находятся указатели на виртуальные функции. Узнаёт не компилятор. Во время выполнения производится переход по этому указателю. Это вкратце. |
| Автор: pms 30.6.2006, 13:02 |
| Спасибо. Кстати, а где вообще происходит вызов этой функции? Или может Вы скажете где подробнее можно об этом прочесть? |
| Автор: SergeCpp 30.6.2006, 13:07 |
| http://www.research.att.com/~bs/dne.html Вот http://anatolix.naumen.ru/Books/CPlusPlus?v=v3z есть несколько прекрасных книг Ну, и это... |