dyna/person3.cpp

Das folgende Code-Beispiel stammt aus dem Buch
Objektorientiertes Programmieren in C++ - Ein Tutorial für Ein- und Umsteiger
von Nicolai Josuttis, Addison-Wesley München, 2001
© Copyright Nicolai Josuttis 2001


// Headerdatei der Klasse einbinden
#include "person.hpp"

// **** BEGINN Namespace Bsp ********************************
namespace Bsp {

/* neu: statische Klassenkomponenten initialisieren
 */
long Person::personenMaxID = 0;
long Person::personenAnzahl = 0;

/* Konstruktor aus Nachname und Vorname
 * - Default für Vorname: ""
 * - Vor- und Nachname werden mit Initialisierungsliste initialisiert
 * - neu: Die ID wird ebenfalls direkt initialisiert
 */
Person::Person (const std::string& nn, const std::string& vn)
  : nname(nn), vname(vn), pid(++personenMaxID)
{
    ++personenAnzahl;  // Anzahl der existierenden Personen erhöhen
}

/* neu: Copy-Konstruktor
 */
Person::Person (const Person& p)
  : nname(p.nname), vname(p.vname), pid(++personenMaxID)
{
    ++personenAnzahl;  // Anzahl der existierenden Personen erhöhen
}

/* neu: Destruktor
 */
Person::~Person ()
{
    --personenAnzahl;  // Anzahl der existierenden Personen herabsetzen
}

/* neu: Zuweisung
 */
Person& Person::operator = (const Person& p)
{
    if (this == &p) {
        return *this;
    }

    // alles außer ID zuweisen
    nname = p.nname;
    vname = p.vname;

    return *this;
}

// **** ENDE Namespace Bsp ********************************