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

Вопрос про Спецификаторы доступа Public и Private - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строки, Функции http://www.cyberforum.ru/cpp-beginners/thread374047.html
Всем доброго времени суток. Нужна помощь в решении. Строки 1. Символьная строка заканчивается восклицательным знаком (!). Слова в ней отделены друг от друга точкой с запятой ( ; ). Найти те слова, которые начинаются и оканчиваются одной и той же буквой. Функции 1. Часовая стрелка образует угол "Фи" с лучом, проходящим через центр циферблата и через точку, соответствующую 12 часам,...
C++ тупняк с virtual :) Здравствуйте. пытаюсь прикрутить икслючения к своему "модулю", и натыкаюсь на ругань компилятора: error: expected unqualified-id before ‘virtual’ А дело делается так: class cfg_exception: public exception { public: cfg_exception(const char *message_string); virtual ~cfg_exception() throw(); http://www.cyberforum.ru/cpp-beginners/thread374039.html
C++ Метод скальзящего среднего
дан двумерный массив (300 строк и 3 столбца: ФИО, порядковый номер получки, величина выплат) - значения зарлаты вариируются винтервале от 1000 до 25000 равновероятно. Написать программу, осуществляющую сглажтвагние временного ряда методом скользящего среднего. Прогнозирование реализовать в виде функции.
dxflib Чтение DXF файлов C++
Есть задача считать DXF файл. Остановился на dxflib. Все считывается нормально, но в некоторых файлах появляется посторонняя фигура, указывающая на ноль. К примеру в A9CAD маленький треугольник. Другие просмоторщики его игнорят, а мой видит. Как ее убрать? Как маркеруются скрытые объекты в DXF?
C++ Как ввести двумерный массив с клавиатуры? Его размерность [n][m] нужно задавать с клавиатуры. http://www.cyberforum.ru/cpp-beginners/thread373998.html
Привет всем. Как ввести двумерный массив с клавиатуры? Его размерность нужно задавать с клавиатуры.
C++ Вычислить и вывести на экран в виде таблицы значения функции помогите сделать пару задач плз) sinx/x=\sum({-1}^{n}*{x}^{2n})/(2n+1)! это 1-ая задача вот 2-ая вычислить и вывести на экран в виде таблицы значения функции F на интервале от Xнач до Xкон с шагом dX F= { -2x-c/cx-a -при x<0 и b неравно 0 x-a/x-c -при x>0 и b=0 -x/c+(-c)/2x -в остальных случаях подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
28.10.2011, 18:20     Вопрос про Спецификаторы доступа Public и Private
iluxa1810, вы не в ту степь лезете. Здесь вам не защита информации. Суть разбиения на области доступа в том, чтобы можно было независимо от клиентского кода менять внутреннюю реализацию класса. Т.е. если мы сразу закроем всё внутреннее устройство, то клиент заведомо не сможет построить свой код вокруг закрытых (и в перспективе изменяемых) частей.
Например, раньше наш вектор хранил явно количество элементов (в виде публичной переменной). И был у вектора метод size. Но клиенты же самые умные, зачем им затраты на вызов метода? Поэтому они во всех своих циклах использовали эту самую открытую переменную. Но тут вдруг нам захотелось поменять метод вычисления размера, не хранить его в переменной, а вычислять как разность адресов начала и конца (и хранить эти адреса). Т.е. мы вообще изъяли из кода класса переменную m_size. Что будет? А ничего особенного, просто весь клиентский код полетит к чертям, его придётся переписывать.
Но закрой мы изначально эту переменную, клиенты были бы вынуждены использовать метод size. И после изменения внутреннего представления размера они бы об этом даже не узнали (они и раньше не знали, как класс устроен изнутри, с чего бы им теперь вдруг что-то заметить?)
Вот зачем (вкратце) нужны спецификаторы доступа.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru