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

Доступ к приватному методу наследника через родителя - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Каким образом в переменную записывается результат каждого рекурсивного вызова? http://www.cyberforum.ru/cpp-beginners/thread1101839.html
Всем привет! Подскажите по данной задачи, немного недопонимаю: ФАКТОРИАЛ: int FACT(int n) {int res; if(n==1) return 1; res=n*FACT(n-1); return(res); } Почему когда я вместо return 1...
C++ После легкой модификации кода он перестал компилироваться Здравствуйте,у меня такая вот проблема: есть готовый проект в CodeBlocks,нужно лишь изменить одну строчку в тексте программы. Пробовал сам,но при сборке выдает следующие ошибки: mingw32-g++.exe... http://www.cyberforum.ru/cpp-beginners/thread1101838.html
Определить, сколько среди чисел четных и сколько нечетных C++
2.Вводится последовательность целых чисел, 0 – конец последовательности. Сколько среди них четных чисел и сколько нечетных.
C++ Передача динамической матрицы в функцию
Здравствуйте подскажите пожалуйста, как можно передать динамическую матрицу, заданную и инициализированную следующим образом cout<<"Введите A --> "; cin>>A; cout<<"Введите B --> "; cin>>B;...
C++ Вывести текст на экран, меняя местами каждые два соседних слова http://www.cyberforum.ru/cpp-beginners/thread1101806.html
Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова
C++ Переделать через указатели #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; void main() { int sum = 0, temp = 0, n; { cout<<"n= "; cin>>n; } подробнее

Показать сообщение отдельно
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
21.02.2014, 10:53
Цитата Сообщение от stikkas Посмотреть сообщение
Такое поведение считается нормальным?
Такое поведение чем то сродни привязке параметра по умолчанию во время компиляции для виртуальных функций. Может быть Вы слышали выражение:
C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, it blows away your whole leg.
Сейчас правда речь не о сравнении C и C++, а о том, что в этих языках есть тонкие места, с которыми рано или поздно сталкивается любой разработчик. Надо их просто знать. И да, всё, что соответствует стандарту языка, считается нормальным.
C++11 §11.5
The access rules (Clause 11) for a virtual function are determined by its declaration and are not affected by the rules for a function that later overrides it.
И приведен практически Ваш пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class B {
public:
   virtual int f();
};
class D : public B {
private:
   int f();
};
void f() {
   D d;
   B* pb = &d;
   D* pd = &d;
   pb->f(); // OK: B::f() is public,
            // D::f() is invoked
   pd->f(); // error: D::f() is private
}
Добавлено через 8 минут
Цитата Сообщение от ValeryS Посмотреть сообщение
речь идет о уже готовых библиотеках классов
Согласен. Но ты же не будешь отрицать, что:
Цитата Сообщение от Tulosba Посмотреть сообщение
Обычно уровень видимости вообще не меняют.
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru