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

Как обратится к обьекту класса, являющегося наследником абстрактного класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Линейный поиск в массиве структуры http://www.cyberforum.ru/cpp-beginners/thread1508038.html
Нужно с помощью линейного поиска искать в готовом массиве структуры значение вводимое с клавиатуры. Напишите шаблон , по которому это можно реализовать. Спасибо.
C++ Windows боксы (Окна, формы) Приветствую уважаемые пользователи cyberforum! Сразу не знаю как правильно называется это. Но как можно реализовать окна на Windows? http://www.cyberforum.ru/cpp-beginners/thread1508019.html
C++ Не могу осознать причину ошибки
Ну, в общем, читаю, такой, Страуструпа и прогаю малеху его примеры. Вот реализация одного из них: #include<iostream> char * strcpy1(char * dst, const char * src){ while (*dst++ = *src++) ; return dst; } int main()
Строка string. Не присваивается новое значение C++
Есть строка: string str_in = "A"; Она используется в созданной мной функцией как один из аргументов: fuction(arg1,arg2,str_in,arg4); Внутри функции значение строки меняется: char sim; //string m;
C++ Наследование методов http://www.cyberforum.ru/cpp-beginners/thread1507978.html
Может мне стоит книжку почитать или получше подумать над структурой, но вопрос вот: Есть у нас древо классов: base > s2 > s3 > s4 > ... И есть в base virtual void f(){ _act1_ } А в s2 virtual void f(){ _act2_ } А в s3 должен обратно быть метод base::virtual void f(){ _act1_ } И чтобы s4 также использовал base::virtual void f(){ _act1_ } Т.е. переопределение виртуального должно работать...
C++ Класс Singletone Здравствуйте! Продолжаю готовиться к экзамену по С++. На последнем уроке вкратце рассказали про класс Singleton, но я расслабился и слушал невнимательно, так как урок был последний. Одним словом, посоветуйте хороший источник, где рассказывается про класс Singletone, где легко и понятно объясняется, от простого к сложному, с примерами на С++ на каждом этапе. Желательно на русском языке. ... подробнее

Показать сообщение отдельно
DrOffset
6461 / 3835 / 886
Регистрация: 30.01.2014
Сообщений: 6,630
01.08.2015, 14:57     Как обратится к обьекту класса, являющегося наследником абстрактного класса
Цитата Сообщение от Avazart Посмотреть сообщение
Вполне логично, так и стоило сделать изначально, я просто не хотел заморачиваться с предъобявления только ради примера.
Тем не менее это важное различие и снижает ценность примера, как доказательства "нарушения инкапсуляции".

Цитата Сообщение от Avazart Посмотреть сообщение
Но это никак не меняет сути проблемы из того метода нам по прежнему доступны все зарытые данные.
Цитата Сообщение от DrOffset Посмотреть сообщение
Т.к. настоящий конструктор тоже имеет доступ ко всем данным - это равноценный обмен.
В этом нет нарушения инкапсуляции. Пересмотри свой взгляд на эту проблему. Метод, который мы определили как friend (addCarGasStation), логически становится частью интерфейса CarGasStation. Нет ничего плохого в том, что ему доступны данные. Он логически - часть класса. Причем декларируем мы это не откуда угодно (тогда бы это было нарушением), а из самого класса CarGasStation, т.к. класс сам себя расширяет на еще один внешний метод. Когда ты добровольно отдаешь что-то - это не воровство, так ведь?
Поэтому Cтрауструп пишет о том, что человек, который пишет про однозначное нарушение инкапсуляции через friend - просто не до конца понимает терминологию С++.

Но если хочется еще больше, то можно разбить наш класс на собственно создающую часть и часть с данными\логикой. Сделать другом только создающую часть, т.к. friend не распространяется на наследование. Техническая возможность ограничить еще больше, существует.
 
Текущее время: 11:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru