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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ не ожидал такого от strlen http://www.cyberforum.ru/cpp-beginners/thread653421.html
#include <iostream> #include <string> #include <fstream> #include <string.h> using namespace std; const int MAX = 256; int main()
C++ Копирование область памяти Здравствуйте, у меня не получается прочитать/скопировать память в переменную. Я делаю .dll, так вот записать значения в адрес я смог, а вот прочитать значения из памяти не могу. Это запись в адрес... http://www.cyberforum.ru/cpp-beginners/thread653420.html
Добавить в однонаправленный список элемент после элемента с заданным информационным полем C++
Здравствуйте, помогите пожалуйста, с задачей. 1.Тип информационного поля char*. Добавить в однонаправленный список элемент после элемента с заданным информационным полем. 2.Тип информационного...
C++ Как отключить переполнение для переменных
у мены вот такая задача: метод получения равномерно-распределенных случайных чисел, основанный на умножении, и использующий 32-х разрядную переменную код по идеи вот такой, но у...
C++ Что нужно для разработки простенькой игры http://www.cyberforum.ru/cpp-beginners/thread653392.html
Всем пт! Хотел узнать, что нужно знать для того чтобы разработать простенькую игру (типа змейки). Желательно описать процесс разработки поэтапно... Какие фреймворки/библиотеки/API используются?...
C++ Звук в С++ Как сделать звук в консольном приложении (Visual c++). ps mmsystem чето не пошел подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
3050 / 1695 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
18.09.2012, 17:33
Цитата Сообщение от ~OhMyGodSoLong~ Посмотреть сообщение
Те, кто пишет new B();

Именно: B наследует A. А вот эта штука вверху, которая после двоеточия и до A, показывает, какой спецификатор доступа будут иметь функции A, унаследованные B. Этим управляют оба класса.

Если там будет стоять что-то кроме public, то все функции A будут иметь спецификатор не выше protected, то есть объект, полученный через new B();, не имеет доступных методов A. Так как он не может "в нормальном режиме" изображать из себя A (иметь те же доступные public-методы, что и у A), то и привести его к типу A нельзя.
Если уж быть совсем точными, то при public-наследовании приведение к базовому классу допустимо в любых функциях, при protected-наследовании приведение к базовому protected-классу допустимо только в производном классе и его друзьях и его наследниках и друзьях наследников, а при private-наследовании - только в производном классе и его друзьях.
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru