Модификаторы доступа — важная функция объектно-ориентированных языков программирования, таких как C++. Они контролируют доступность членов класса и определяют, как к ним можно получить доступ и изменить их в программе. В этой статье блога мы сосредоточимся на модификаторе доступа по умолчанию в C++ и рассмотрим различные методы с примерами кода, иллюстрирующими его использование.
Модификатор доступа по умолчанию:
В C++, когда модификатор доступа не указан явно для члена класса, в игру вступает модификатор доступа по умолчанию. Модификатор доступа по умолчанию варьируется в зависимости от типа объявления класса. Вот уровни доступа для различных объявлений классов в C++:
-
Для классов, объявленных с ключевым словом «struct»:
- Модификатор доступа по умолчанию является «общедоступным» для всех участников.
-
Для классов, объявленных с ключевым словом «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». Помните, что использование явных модификаторов доступа рекомендуется для повышения ясности и удобства сопровождения кода.