|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.09.2008, 11:37 | #21 | |
Пользователь
Регистрация: 25.09.2008
Сообщений: 40
|
Цитата:
Код:
2) Я так понимаю new C будет содержать в себе и методы класса B тоже? 3)Из наблюдений заметил, что если функция виртуальная, то под нее выделяется дополнительно 4 байта памяти, зачем? 4)В нашем случае (A *cls = new C; ) как определить какой из методов выполнит компилятор? По идее он должен выполнить метод того класса, тип которого предписан указателю *cls(В нашем случае это А), но так ка функция виртуальна он идет вверх по древу наследия и... дальше не понимаю. |
|
01.10.2008, 16:21 | #22 |
...
Форумчанин
Регистрация: 01.06.2008
Сообщений: 134
|
1) C++ язык статической типизации, т.е. тип должен быть задан на момент компиляции и он не может изменится. Поэтому указатель cls будет иметь по-прежнему тип A.
2) Благодаря наследованию, класс C будет содержать в себе члены класса B, который в свою очередь содержит члены из класса A. 3) Есть множество моментов, влияющих на размер класса (структуры). Но вам, как новичку будет сложно понять все это сейчас, а нам объяснить вам. Для этого нужно твердо представлять, что происходит на более низком уровне. Тем более что для реализации большинства задач начального уровня эти знания не потребуются. 4) Т.к. функция-член func() объявлена как виртуальная, то при cls->func() будет найдена последняя реализация функции-члена func() в иерархии наследования от класса A (A * cls до класса C (new C; ), и в итоге будет вызвана C::func(). |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ссылка в паскале | vitekbest | Помощь студентам | 3 | 13.06.2008 17:50 |
Однаразовая ссылка | Stanislav | PHP | 5 | 07.03.2008 22:03 |
Ссылка из программы. | Kukkk | Общие вопросы Delphi | 1 | 21.09.2007 22:57 |
Ссылка в Label | amid1804 | Компоненты Delphi | 3 | 20.05.2007 17:27 |