Форум программистов, компьютерный форум 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, так вот записать значения в адрес я смог, а вот прочитать значения из памяти не могу. Это запись в адрес значения: memcpy((void*)0x8CD4D6, "\x00\x00\x00\x00", 4); мои попытки прочить в переменную не удавались: DWORD WeaponPlayer; memmove((void*)0x8CD4D6,&WeaponPlayer,4); http://www.cyberforum.ru/cpp-beginners/thread653420.html
Добавить в однонаправленный список элемент после элемента с заданным информационным полем C++
Здравствуйте, помогите пожалуйста, с задачей. 1.Тип информационного поля char*. Добавить в однонаправленный список элемент после элемента с заданным информационным полем. 2.Тип информационного поля int. Удалить из двунаправленного списка все элементы с четными информационными полями.
C++ Как отключить переполнение для переменных
у мены вот такая задача: метод получения равномерно-распределенных случайных чисел, основанный на умножении, и использующий 32-х разрядную переменную код по идеи вот такой, но у меня появляется проблема с переполнением, в задание сказано что его можно отключить вообще или для конкретной переменной, но как это сделать? пыталась по сети найти, но не получилось, подскажите, кто...
C++ Что нужно для разработки простенькой игры http://www.cyberforum.ru/cpp-beginners/thread653392.html
Всем пт! Хотел узнать, что нужно знать для того чтобы разработать простенькую игру (типа змейки). Желательно описать процесс разработки поэтапно... Какие фреймворки/библиотеки/API используются? Заранее всем спс!
C++ Звук в С++ Как сделать звук в консольном приложении (Visual c++). ps mmsystem чето не пошел подробнее

Показать сообщение отдельно
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
18.09.2012, 13:04     Спецификаторы доступа и виртуальные функции
Если там будет стоять что-то кроме public, то все функции A будут иметь спецификатор не выше protected, то есть объект, полученный через new B();, не имеет доступных методов A.
Вот эта строчка ключевая
Если придираться, то это не совсем верно.

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
25
26
27
28
29
30
31
////////////////////////////////////////////////////
пример 1
class A
{
protected:
  void F() {}
};
 
class B : public A
{
};
 
A* a = new B(); // это верно. B является A из-за публичного наследования
// не важно какие там спецификаторы у методов класса A
 
a->F(); // неверно, т.к. все методы у класса A защищенные
 
////////////////////////////////////////////////////
пример 2
 
class A
{
protected:
  void F() {}
};
 
class B : protected A
{
};
 
A* a = new B(); // ошибка. B не является A из-за защищенного наследования.
т.е. интерпретация спецификаторов у методов в базовом классе никак не изменяется.
публичное остается публичным, защищенное - защищенным и т.д. Один класс B перестает считаться
наследником класса A. Это несколько отличается от процитированного.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru