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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строки, Функции http://www.cyberforum.ru/cpp-beginners/thread374047.html
Всем доброго времени суток. Нужна помощь в решении. Строки 1. Символьная строка заканчивается восклицательным знаком (!). Слова в ней отделены друг от друга точкой с запятой ( ; ). Найти те...
C++ тупняк с virtual :) Здравствуйте. пытаюсь прикрутить икслючения к своему "модулю", и натыкаюсь на ругань компилятора: error: expected unqualified-id before ‘virtual’ А дело делается так: class cfg_exception:... http://www.cyberforum.ru/cpp-beginners/thread374039.html
C++ Метод скальзящего среднего
дан двумерный массив (300 строк и 3 столбца: ФИО, порядковый номер получки, величина выплат) - значения зарлаты вариируются винтервале от 1000 до 25000 равновероятно. Написать программу,...
dxflib Чтение DXF файлов C++
Есть задача считать DXF файл. Остановился на dxflib. Все считывается нормально, но в некоторых файлах появляется посторонняя фигура, указывающая на ноль. К примеру в A9CAD маленький треугольник....
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кон с... подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
28.10.2011, 15:58
Цитата Сообщение от iluxa1810 Посмотреть сообщение
Доступ по умолчанию к элементам класса-закрытый(private)
Если вы явно не задали спецификатор доступа, то по умолчанию все элементы будут закрытыми.


Цитата Сообщение от iluxa1810 Посмотреть сообщение
поэтому все элементы между заголовком класса и первым спецификатором доступа являются закрытыми
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Foo
{
    // Элементы закрыты, поскольку явно не указан спецификатор доступа
    int a;
    int b;
 
// Все элементы до следующего спецификатора доступа будут открытыми
public:
    int c;
    int d;
 
// Снова закрытые элементы
private:
    int e;
};
Цитата Сообщение от iluxa1810 Посмотреть сообщение
Спецификаторы public и private могут повторяться,хотя в этом нет необходимости и может приводить к путанице
Вы можете как угодно перемешивать спецификаторы доступа, хоть писать их перед каждым элементом:
C++
1
2
3
4
5
6
7
8
class Foo
{
private: int a;
private: int b;
public: int c;
protected: int d;
private: int e;
};
Цитата Сообщение от iluxa1810 Посмотреть сообщение
Ведь переменная должна объявляться до ее использования
Здесь это не работает, у класса единая область видимости. Поэтому всё, что объявлено в любом месте класса, видно так же в любом месте класса.
К этому же: рекомендуется все закрытые данные объявлять в конце класса, а все открытые - в начале, так как пользователь, открыв класс, должен видеть в первую очередь интерфейс (открытые методы), а не шестерёнки (закрытые данные) класса.

Цитата Сообщение от iluxa1810 Посмотреть сообщение
Как это понимать?
Как комментарий)))
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru