Определение класса с приватными (private) данными-членами
Класс в C++ представляет собой шаблон для создания объектов. Он определяет набор свойств (данных-членов) и методов (функций-членов), которые будут у объектов, созданных на основе этого класса. Классы помогают организовать код и реализовать принципы объектно-ориентированного программирования, такие как инкапсуляция, наследование и полиморфизм.
Базовый синтаксис определения класса в C++ выглядит следующим образом:
class ClassName {
private:
// Private data members
int dataMember1;
std::string dataMember2;
public:
// Public member functions
void memberFunction1();
int memberFunction2();
};
В C++ есть три спецификатора доступа, которые контролируют видимость и доступность членов класса:
private
: Члены, объявленные как private, доступны только внутри класса.
public
: Члены, объявленные как public, доступны извне класса.
protected
: Члены, объявленные как protected, доступны внутри класса и экземплярами производных классов.
На этом этапе вы научитесь определять класс с приватными данными-членами в C++. Приватные данные-члены - это важная концепция объектно-ориентированного программирования, которая помогает инкапсулировать и защитить внутреннее состояние объекта.
Сначала откройте WebIDE и перейдите в каталог ~/project
. Создайте новый файл с именем student.cpp
:
touch ~/project/student.cpp
Откройте файл student.cpp
в WebIDE и добавьте следующий код для определения класса Student
с приватными данными-членами:
#include <iostream>
#include <string>
class Student {
private:
// Private data members
std::string name;
int age;
double gpa;
public:
// We'll add methods to interact with these private members in later steps
void displayInfo() {
std::cout << "Name: " << name << std::endl;
std::cout << "Age: " << age << std::endl;
std::cout << "GPA: " << gpa << std::endl;
}
};
int main() {
Student student;
// Note: We can't directly access private members
// student.name = "John"; // This would cause a compilation error
student.displayInfo();
return 0;
}
Разберем основные концепции:
-
Приватные данные-члены:
- Объявляются с использованием спецификатора доступа
private:
- Не могут быть напрямую доступны извне класса
- Предоставляют защиту данных и инкапсуляцию
-
Типы данных:
std::string name
: Хранит имя студента
int age
: Хранит возраст студента
double gpa
: Хранит средний балл студента
-
Инкапсуляция:
- Приватные члены могут быть доступны только через публичные методы
- Предотвращает прямое изменение внутренних данных
Скомпилируйте программу:
g++ student.cpp -o student
./student
Пример вывода при запуске программы:
Name:
Age: 0
GPA: 0
Основные моменты:
- Приватные члены скрыты от внешнего доступа
- Они могут быть изменены только через методы класса
- Это помогает сохранить целостность и контроль данных