Definir una clase con miembros de datos privados
Una clase en C++ es un modelo para crear objetos. Define un conjunto de propiedades (miembros de datos) y métodos (funciones miembro) que tendrán los objetos creados a partir de la clase. Las clases ayudan a organizar el código e implementar principios de programación orientada a objetos como la encapsulación, la herencia y el polimorfismo.
La sintaxis básica para definir una clase en C++ es la siguiente:
class ClassName {
private:
// Private data members
int dataMember1;
std::string dataMember2;
public:
// Public member functions
void memberFunction1();
int memberFunction2();
};
Hay tres especificadores de acceso en C++ que controlan la visibilidad y accesibilidad de los miembros de una clase:
private: Los miembros declarados como privados son accesibles solo dentro de la clase.
public: Los miembros declarados como públicos son accesibles desde fuera de la clase.
protected: Los miembros declarados como protegidos son accesibles dentro de la clase y por instancias de clases derivadas.
En este paso, aprenderás cómo definir una clase con miembros de datos privados en C++. Los miembros de datos privados son un concepto esencial en la programación orientada a objetos que ayuda a encapsular y proteger el estado interno de un objeto.
Primero, abre el WebIDE y navega hasta el directorio ~/project. Crea un nuevo archivo llamado student.cpp:
touch ~/project/student.cpp
Abre el archivo student.cpp en el WebIDE y agrega el siguiente código para definir una clase Student con miembros de datos privados:
#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;
}
Analicemos los conceptos clave:
-
Miembros de datos privados:
- Declarados usando el especificador de acceso
private:
- No se pueden acceder directamente desde fuera de la clase
- Proporcionan protección y encapsulación de datos
-
Tipos de datos:
std::string name: Almacena el nombre del estudiante
int age: Almacena la edad del estudiante
double gpa: Almacena el promedio académico del estudiante
-
Encapsulación:
- Los miembros privados solo se pueden acceder a través de métodos públicos
- Evita la modificación directa de los datos internos
Compila el programa:
g++ student.cpp -o student
./student
Ejemplo de salida al ejecutar el programa:
Name:
Age: 0
GPA: 0
Puntos clave:
- Los miembros privados están ocultos para el acceso desde fuera
- Solo se pueden modificar a través de métodos de la clase
- Esto ayuda a mantener la integridad y el control de los datos