
Сообщение от
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
Как это понимать?
Как комментарий)))