Dazu ein kleines Beispiel:

Ein kleines C++-Programm soll eine Klasse vereinbaren, die zwei Zahlen enthält. Die beiden Zahlen sollen von außerhalb nicht direkt manipulierbar sein, sondern nur über eine Funktion, die beide Elemente setzt sowie eine weitere Funktion, welche die Summe der beiden Elemente liefert.

In C++ könnte das so aussehen:

// Time-stamp: "(15.11.01 16:10) klasse0.cpp [Klaus Wachtler (aw38)]"
//
// kleine Demonstration einer Klasse

#include <iostream>

using namespace std;

// Vereinbarung einer Klasse:
struct ersteklasse     // statt "struct" waere genausogut
                       // "class" moeglich
{
private:               // zahl1 und zahl2 sollen nicht von ausserhalb
                       // der Klasse direkt verwendbar sein, daher private
  int     zahl1;
  int     zahl2;

public:                // Die Elementfunktionen sind von ausserhalb auf-
                       // rufbar sein, daher public

  void setzezahlen( int z1, int z2 )
  {
    zahl1 = z1;
    zahl2 = z2;
  }

  int summe( void )
  {
    return zahl1 + zahl2;
  }

};
// Hiermit ist die Klasse mit dem Namen ersteklasse vereinbart.

// Kleines Testprogramm dazu:

int main( int nargs, char *args[] )
{
  // von der Klasse ersteklasse werden zwei Instanzen a und b erzeugt:
  ersteklasse
    a,
    b;

  // a wird auf { 2, 3 } und b auf { 10, 12 } gesetzt:
  a.setzezahlen( 2, 3 );
  b.setzezahlen( 10, 12 );

    // Die Summe a.zahl1+a.zahl2 ausgeben:
  cout << "a hat den Wert " << a.summe() << "\n";
  // dto. mit b:
  cout << "b hat den Wert " << b.summe() << "\n";

  return 0;
}

Die zugehörige Programmausgabe lautet:

a hat den Wert 5
b hat den Wert 22

Dazu einige Anmerkungen:

AnyWare@Wachtler.de