Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
hepr
61 / 33 / 5
Регистрация: 21.10.2010
Сообщений: 539
#1

Классы - C++

17.08.2011, 23:20. Просмотров 448. Ответов 8
Метки нет (Все метки)

Здравствуйте, а не подскажите может ли указатель базового класса указывать на наледника
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2011, 23:20     Классы
Посмотрите здесь:

C++ классы
C++ Классы С++
Классы C++
C++ Классы
C++ Классы
Классы C++
Классы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4952 / 3028 / 149
Регистрация: 11.11.2009
Сообщений: 7,026
Завершенные тесты: 1
17.08.2011, 23:27     Классы #2
Разумеется, именно на этой идее в плюсах реализовано позднее связывание.
hepr
61 / 33 / 5
Регистрация: 21.10.2010
Сообщений: 539
17.08.2011, 23:33  [ТС]     Классы #3
Блин, наоборот хотел спросить - может ли указатель наследника указывать на базовый, по смыслу должен, но компилятор говорит, что нет, еще раз извините за невнимательность
asics
Freelance
Эксперт C++
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
17.08.2011, 23:45     Классы #4
Цитата Сообщение от hepr Посмотреть сообщение
по смыслу должен
По какому-такому смыслу ?
hepr
61 / 33 / 5
Регистрация: 21.10.2010
Сообщений: 539
17.08.2011, 23:57  [ТС]     Классы #5
Что наследник - это базовый + что-то еще, тогда почему указатель на базовый не может указывать на все элементы базового класса в наследнике и не брать во внимание приобретенные
silent_1991
Эксперт С++
4952 / 3028 / 149
Регистрация: 11.11.2009
Сообщений: 7,026
Завершенные тесты: 1
18.08.2011, 07:24     Классы #6
Цитата Сообщение от hepr Посмотреть сообщение
указатель на базовый не может указывать на все элементы базового класса в наследнике и не брать во внимание приобретенные

Ещё раз, внятно и по-русски напишите то, что вы хотите. От сообщения к сообщению ваши намерения меняются туда-сюда.

Добавлено через 1 минуту
Указатель на базовый класс может указывать на любого его наследника. Указатель на наследника указывать на базовый не может.
LosAngeles
Заблокирован
18.08.2011, 07:57     Классы #7
Цитата Сообщение от hepr Посмотреть сообщение
Что наследник - это базовый + что-то еще, тогда почему указатель на базовый не может указывать на все элементы базового класса в наследнике и не брать во внимание приобретенные
ты хочешь чтобы с помощью указателя на базовый класс, содержащий на самом деле указатель на потомка, вызывать методы исключительно базового класса? Тогда можно подавить виртуальные вызовы вместо func писать Base::func например. Хотя в таком случае статический полиморфизм более уместен, который собственно и используется по умолчанию
hepr
61 / 33 / 5
Регистрация: 21.10.2010
Сообщений: 539
18.08.2011, 10:44  [ТС]     Классы #8
LosAngeles, silent_1991, спасибо, вы ответили на мой вопрос
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.08.2011, 12:53     Классы
Еще ссылки по теме:

Классы С++ C++
C++ Классы в С++
Классы C++ C++
C++ Классы
C++ Классы

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
skvor
640KB мне хватило на всё.
118 / 49 / 2
Регистрация: 07.06.2009
Сообщений: 442
19.08.2011, 12:53     Классы #9
Указатель не может быть на класс (в смысле тип). Указатель может быть только на объект (в смысле экземпляр).

Точнее: указатель типа базового класса может указывать на экземпляр потомка, обратное не должно быть реализовано.

Если обращаться к экземпляру-потомку через указатель на базовый класс, то все методы и поля реализованные в базовом классе, будут доступны (разрешены) и в экземпляре потомка. А вот при обратном обращении, это будет нарушено, т.к. наверняка у потомка есть поля не определенные в родительском классе.
Yandex
Объявления
19.08.2011, 12:53     Классы
Ответ Создать тему
Опции темы

Текущее время: 22:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru