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

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

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

Классы - C++

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

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

Непонятна тема (Классы содержащие другие классы, как данные члены ) - C++
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент) #include <iostream> class Point { public: void SetX(int...

Программа по классам, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы - C++
Нужно написать программу, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы. Реализовать её нужно в трех...

Наследование, базовые классы и производные классы - C++
Добрый вечер.Задание: необходимо разработать поля и методы наследуемые из базового класса и собственные компоненты производных...

Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.) - C++
Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию...

Классы возможностей(Mixin классы) - C++
Не могу понять смысла использования mixin классов( это класс в котором есть только методы и нет членов-данных) Т.е. к примеру у нас...

Классы, включающие другие классы - C++
Столкнулся вот с таким кодом: #include <iostream> class Point { public: void SetX(int x) {itsX = x;} void SetY(int y) ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
17.08.2011, 23:27 #2
Разумеется, именно на этой идее в плюсах реализовано позднее связывание.
hepr
61 / 33 / 5
Регистрация: 21.10.2010
Сообщений: 539
17.08.2011, 23:33  [ТС] #3
Блин, наоборот хотел спросить - может ли указатель наследника указывать на базовый, по смыслу должен, но компилятор говорит, что нет, еще раз извините за невнимательность
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
17.08.2011, 23:45 #4
Цитата Сообщение от hepr Посмотреть сообщение
по смыслу должен
По какому-такому смыслу ?
hepr
61 / 33 / 5
Регистрация: 21.10.2010
Сообщений: 539
17.08.2011, 23:57  [ТС] #5
Что наследник - это базовый + что-то еще, тогда почему указатель на базовый не может указывать на все элементы базового класса в наследнике и не брать во внимание приобретенные
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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, спасибо, вы ответили на мой вопрос
skvor
640KB мне хватило на всё.
118 / 49 / 2
Регистрация: 07.06.2009
Сообщений: 442
19.08.2011, 12:53 #9
Указатель не может быть на класс (в смысле тип). Указатель может быть только на объект (в смысле экземпляр).

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

Если обращаться к экземпляру-потомку через указатель на базовый класс, то все методы и поля реализованные в базовом классе, будут доступны (разрешены) и в экземпляре потомка. А вот при обратном обращении, это будет нарушено, т.к. наверняка у потомка есть поля не определенные в родительском классе.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.08.2011, 12:53
Привет! Вот еще темы с ответами:

классы/дочерние классы/методы - C++
помогите пожалуйста! надо что выводились только учебеники. чтоб былo через GetTip. h файл class Book { protected: char...

Динамические массивы структур;Классы. Класс массивы структур;Классы. Класс динамического массива структур. - C++
Здраствуйте.Помогите с практичкой мое задание 4.3. Строка таблицы данных содержит следующую информацию о владельцах авто: ф.и.о....

КЛАССЫ - C++
Очень нужна помощь!!! подскажите где ошибки: #include <iostream> #include <windows.h> char* Rus(const char* text); using...

Классы в С++ - C++
Ребята, помогите пожалуйста. Я новичок в программировании, а сессия заканчивается. Нужно привести пример класса (С++): описание класса,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.08.2011, 12:53
Ответ Создать тему
Опции темы

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