private С++ указание приватных (закрытых) членов класса

Модификатор доступа private служит для указания приватных (закрытых) членов класса. По умолчанию, в классе создаются закрытые члены класса (private), а в структурах - открытые (public), это единственное отличие структур от классов в С++ (это не шутка и на заблуждение).

Для объявления закрытых членов класса нужно внутри объявления класса написать private:. Данный модификатор будет действовать либо до окончания объявления класса, либо до встречи другого модификатора доступа (protected или public);

На члены класса (элементы) объявленные с модификатором доступа private распространяются следующие правила:
1) Элементы недоступны из других классов;
2) Элементы недоступны из производных классов;
3) Элементы доступны внутри класса где они определены, в том числе и в функциях класса;
4) Элементы доступны из дружественных функций;
5) Элементы доступны из дружественных классов.


#include <iostream> // cout
using namespace std;
class My_class{
private:                   // Объявление закрытых членов класса
    int a = 10;            // Приватная целочисленная переменная
    int get_a(){           // Приватная функция
        return a;          // К приватным членам можно обращаться внутри класса
    }
    int b = get_a();       // К приватным членам можно обращаться внутри класса
    int c = a;             // К приватным членам можно обращаться внутри класса
public:                    // Объявление открытых членов класса
    int d = 10;            // Открытая целочисленная переменная
    void print_d(){        // Открытая функция
        cout << d << endl; // Вывод значения переменной d
    }
};

int main(){
    My_class obj;             // Создали объект obj класса My_class
    // int s = obj.a;         // Ошибка! Нельзя обращаться к закрытым членам класса (к переменной а)
    // int si = obj.get_a();  // Ошибка! Нельзя обращаться к закрытым членам класса (к функции get_a() )
    // int siz = obj.b;       // Ошибка! Нельзя обращаться к закрытым членам класса (к переменной b)
    // int size = obj.c;      // Ошибка! Нельзя обращаться к закрытым членам класса (к переменной c)
    int dd = obj.d;           // Можно использовать открытые члены класса (переменную d)
    obj.d = 20;               // Можно использовать открытые члены класса и для записи (переменную d)
    obj.print_d();            //20 Можно использовать открытые члены класса (функцию print_d() )
}
2023-10-22



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

Конструктор в C++. Конструктор копирования и оператор присваивания.
delete C++ оператор освобождения памяти и спецификатор ограничения доступа
explicit С++ запрет неявных преобразования при вызове конструктора
friend C++ дружественная функция имеющая доступ к закрытым членам класса
mutable C++ изменение членов константного объекта
new C++ динамическое выделение памяти
private С++, С++ приватные члены класса, С++ закрыты члены класса
protected C++ указание защищенных членов класса
public С++, С++ открытые члены класса
struct С++ структура
this C++ указатель на текущий объект класса
virtual C++ виртуальные функции