C++ inkapseling


inkapseling

De betekenis van Encapsulation is ervoor te zorgen dat "gevoelige" gegevens voor gebruikers verborgen blijven. Om dit te bereiken, moet u klassevariabelen/attributen declareren als private(niet toegankelijk van buiten de klasse). Als u wilt dat anderen de waarde van een privélid lezen of wijzigen, kunt u openbare get- en set - methoden opgeven.


Toegang tot privéleden

Gebruik de openbare "get"- en "set"-methoden om toegang te krijgen tot een privékenmerk:

Voorbeeld

#include <iostream>
using namespace std;

class Employee {
  private:
    // Private attribute
    int salary;

  public:
    // Setter
    void setSalary(int s) {
      salary = s;
    }
    // Getter
    int getSalary() {
      return salary;
    }
};

int main() {
  Employee myObj;
  myObj.setSalary(50000);
  cout << myObj.getSalary();
  return 0;
}

Voorbeeld uitgelegd

Het salarykenmerk is private, die beperkte toegang hebben.

De openbare setSalary()methode neemt een parameter ( s) en wijst deze toe aan het salaryattribuut (salaris = s).

De public getSalary()methode retourneert de waarde van het private salaryattribuut.

Binnen main()maken we een object van de Employeeklasse. Nu kunnen we de setSalary()methode gebruiken om de waarde van het private attribuut in te stellen op 50000. Vervolgens roepen we de getSalary()methode op het object aan om de waarde te retourneren.


Waarom inkapseling?

  • Het wordt als een goede gewoonte beschouwd om uw klasseattributen als privé te declareren (zo vaak als u kunt). Inkapseling zorgt voor een betere controle over uw gegevens, omdat u (of anderen) een deel van de code kunt wijzigen zonder andere delen te beïnvloeden
  • Verhoogde beveiliging van gegevens