Definir Classe com Membros de Dados Privados
Uma classe em C++ é um modelo para criar objetos. Ela define um conjunto de propriedades (membros de dados) e métodos (funções membro) que os objetos criados a partir da classe terão. As classes ajudam a organizar o código e a implementar princípios de programação orientada a objetos, como encapsulamento, herança e polimorfismo.
A sintaxe básica para definir uma classe em C++ é a seguinte:
class ClassName {
private:
// Private data members
int dataMember1;
std::string dataMember2;
public:
// Public member functions
void memberFunction1();
int memberFunction2();
};
Existem três especificadores de acesso em C++ que controlam a visibilidade e a acessibilidade dos membros da classe:
private: Membros declarados como privados são acessíveis apenas dentro da classe.
public: Membros declarados como públicos são acessíveis de fora da classe.
protected: Membros declarados como protegidos são acessíveis dentro da classe e por instâncias de classes derivadas.
Nesta etapa, você aprenderá como definir uma classe com membros de dados privados em C++. Membros de dados privados são um conceito essencial na programação orientada a objetos que ajuda a encapsular e proteger o estado interno de um objeto.
Primeiro, abra o WebIDE e navegue até o diretório ~/project. Crie um novo arquivo chamado student.cpp:
touch ~/project/student.cpp
Abra o arquivo student.cpp no WebIDE e adicione o seguinte código para definir uma classe Student com membros de dados 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;
}
Vamos detalhar os conceitos-chave:
-
Membros de Dados Privados:
- Declarados usando o especificador de acesso
private:
- Não podem ser acessados diretamente de fora da classe
- Fornecem proteção de dados e encapsulamento
-
Tipos de Dados:
std::string name: Armazena o nome do aluno
int age: Armazena a idade do aluno
double gpa: Armazena a média geral do aluno
-
Encapsulamento:
- Membros privados só podem ser acessados através de métodos públicos
- Impede a modificação direta de dados internos
Compile o programa:
g++ student.cpp -o student
./student
Exemplo de saída ao executar o programa:
Name:
Age: 0
GPA: 0
Pontos chave:
- Membros privados são ocultos do acesso externo
- Eles só podem ser modificados através de métodos da classe
- Isso ajuda a manter a integridade e o controle dos dados