Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
#1

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

27.07.2012, 17:10. Просмотров 430. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2012, 17:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Спецификатор доступа и виртуальные функции (C++):

Спецификаторы доступа и виртуальные функции - C++
Сейчас почитал про виртуальные функции. Интересно конечно, но ответа на мою ситуацию я так и не нашел #include &lt;iostream&gt; #include...

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

виртуальные и чисто виртуальные функции - C++
Чем они отличаются?? если можно, с примерами. И как из виртуальной функции сделать чисто виртуальную? #include &lt;iostream&gt; using...

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

виртуальные функции - C++
сделать какой либо из методов класса виртуальным #include&lt;iostream.h&gt; #include&lt;stdio.h&gt; class chislo { int a; public: ...

виртуальные функции - C++
Помогите плиз с вертуальными функциями. Некак немогу понят вот эту задачу: переопределяемая виртуальная функция находит: ...

2
zss
Модератор
Эксперт С++
6579 / 6141 / 2022
Регистрация: 18.12.2011
Сообщений: 15,999
Завершенные тесты: 1
27.07.2012, 17:13 #2
Правильно рассуждаете.
Доступ выполняется по указателю базового класса,
а в нем это public функция.
2
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
27.07.2012, 17:20  [ТС] #3
Спасибо, уже сам нашел подтверждение своим мыслям.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2012, 17:20
Привет! Вот еще темы с ответами:

Виртуальные функции - C++
Пожалуйста, подскажите как быть: class Circles; class Rectangs; class Snake { public: Circles *drr; void start1(); ...

Виртуальные функции - C++
Здрасте! вот задачка, какбэ сделал, но нужны виртуальные функции. даже не знаю как их сделать. #include &lt;iostream.h&gt; #include...

Виртуальные функции - C++
Подскажите пожалуйста, как передать переменную из одной виртуальной функции в другую. Вот код программы работает правильно, но в остальных...

виртуальные функции - C++
Помогите пожалуйста, создать абстрактный класс Shape с двумя чисто виртуальными методами Area() и Print(). Определить производные классы ...


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

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

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