Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1172 / 885 / 94
Регистрация: 03.08.2011
Сообщений: 2,455
1

Спецификатор доступа и виртуальные функции

27.07.2012, 17:10. Просмотров 549. Ответов 2
Метки нет (Все метки)

Как я понимаю, спецификатор доступа задается только в том классе, где функция объявляется виртуальной? Получается во время исполнения не проверяется спецификатор доступа? Ну вот например код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Base {
 public:
   virtual void func() const {
      std::cout << "Base" << std::endl;
   }
};
 
class Derived : public Base {
 private:
   virtual void func() const {
      std::cout << "Derived" << std::endl;
   }
};
 
int main () {
   Derived obj;
   Base *ptr = &obj;
 
   //obj.func() // тут естественно ошибка
 
   ptr -> func(); //нормальный вывод, "Derived"
 
   return 0;
}
Просто у Дейтелов по этому вопросу ничего не нашел.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.07.2012, 17:10
Ответы с готовыми решениями:

Спецификаторы доступа и виртуальные функции
Сейчас почитал про виртуальные функции. Интересно конечно, но ответа на мою ситуацию я так и не...

Пишем свой класс, спецификатор доступа protected
Всем привет! Из книги Р. Лафоре относительно спецификатора доступа protected: Далее пишется...

Стандартный спецификатор доступа для интерфейсов
Может чего то пропустил в учебнике, но так и не нашел ответ на следующий вопрос. Вот для класса,...

Какой спецификатор доступа элементов класса считается по умолчанию
1. Какой спецификатор доступа элементов класса считается по умолчанию? 2. Имеют ли методы класса...

2
Модератор
Эксперт С++
9689 / 8285 / 5054
Регистрация: 18.12.2011
Сообщений: 22,148
27.07.2012, 17:13 2
Правильно рассуждаете.
Доступ выполняется по указателю базового класса,
а в нем это public функция.
2
1172 / 885 / 94
Регистрация: 03.08.2011
Сообщений: 2,455
27.07.2012, 17:20  [ТС] 3
Спасибо, уже сам нашел подтверждение своим мыслям.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.07.2012, 17:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Виртуальные и чисто виртуальные функции
Чем они отличаются?? если можно, с примерами. И как из виртуальной функции сделать чисто...

Необходимо настроить виртуальные хосты для доступа из интернета и локальной сети
Здровствуйте все. Помогите пожалуйста разобраться с проблемой. Ситуация следующая, есть...

Вывести на экран второго и шестандцатую эквиваленты целого числа. Не использовать спецификатор типа% х,% Х в функции printf.
Вывести на экран второго и шестандцатую эквиваленты целого числа. Не использовать спецификатор...

Виртуальные функции
В википедии написано: Я не совсем понимаю, как можно вызывать нескомпилированный код. Если...

Виртуальные функции
Всем привет. Есть задание. Если коротко, то нужно транспонировать матрицу используя ооп. Должно...

Виртуальные функции
Пожалуйста, подскажите как быть: class Circles; class Rectangs; class Snake { public:...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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