Понимание модификаторов доступа в C++: изучение доступа по умолчанию и примеров кода

Модификаторы доступа — важная функция объектно-ориентированных языков программирования, таких как C++. Они контролируют доступность членов класса и определяют, как к ним можно получить доступ и изменить их в программе. В этой статье блога мы сосредоточимся на модификаторе доступа по умолчанию в C++ и рассмотрим различные методы с примерами кода, иллюстрирующими его использование.

Модификатор доступа по умолчанию:
В C++, когда модификатор доступа не указан явно для члена класса, в игру вступает модификатор доступа по умолчанию. Модификатор доступа по умолчанию варьируется в зависимости от типа объявления класса. Вот уровни доступа для различных объявлений классов в C++:

  1. Для классов, объявленных с ключевым словом «struct»:

    • Модификатор доступа по умолчанию является «общедоступным» для всех участников.
  2. Для классов, объявленных с ключевым словом «class»:

    • Модификатор доступа по умолчанию «частный» для всех участников.

Примеры кода.
Давайте углубимся в некоторые примеры кода, чтобы понять, как модификатор доступа по умолчанию работает в различных сценариях:

Пример 1. Использование ключевого слова “struct” (публичный доступ по умолчанию)

#include <iostream>
struct Person {
    std::string name; // Public member
    void display() {
        std::cout << "Name: " << name << std::endl;
    }
};
int main() {
    Person person;
    person.name = "John Doe";
    person.display();
    return 0;
}

В этом примере структура «Person» имеет общедоступную переменную-член «name» и общедоступную функцию-член «display()». Мы можем получить доступ к элементу «name» и изменить его непосредственно вне структуры.

Пример 2. Использование ключевого слова class (частный доступ по умолчанию)

#include <iostream>
class Car {
    std::string brand; // Private member
public:
    void setBrand(const std::string& newBrand) {
        brand = newBrand;
    }
    void display() {
        std::cout << "Brand: " << brand << std::endl;
    }
};
int main() {
    Car car;
    car.setBrand("Toyota");
    car.display();
    return 0;
}

В этом примере класс «Car» имеет частную переменную-член «brand» и две общедоступные функции-члены: «setBrand()» и «display()». Мы не можем напрямую получить доступ к элементу «brand» или изменить его вне класса, но мы можем использовать общедоступную функцию-член «setBrand()» для изменения его значения.

Понимание модификаторов доступа в C++ имеет решающее значение для разработки хорошо инкапсулированного и удобного в сопровождении кода. Модификатор доступа по умолчанию в C++ определяет доступность членов класса, когда модификатор доступа не указан явно. По умолчанию уровни доступа различаются в объявлениях «struct» и «class». Помните, что использование явных модификаторов доступа рекомендуется для повышения ясности и удобства сопровождения кода.