All pastes #579781 Raw Edit

Anonymous

public cpp v1 · immutable
·published 2007-06-20 20:43 UTC
rendered paste body
#include <iostream>using namespace std;class Date{public:     static int givec() // liefert Anzahl der Objekte    {        return count;    }        Date(int mn, int dy=1, int yr=1):month(mn),day(dy),year(yr) // Konstruktor    {        count++;        cout<<"Anzahl der Dateobjekte: "<<count<<endl;    }    Date(const Date&) { }    ~Date() // Destruktor    {        count--;        cout<<"Anzahl der Dateobjekte: "<<count<<endl;    }        int getMonth() const // liefert Month    {        return month;    }        int getYear() const // liefert Year    {        return year;    }        int getDay() const // liefert Day    {        return day;    }        ostream& write(ostream& temp)    {          return temp<<day<<"."<<month<<"."<<year<<endl;    }    private:    static int count; // Anzahl der Objekte    int month, day, year; // Datum};class PersonInfo{public:    PersonInfo(char *nm, char *adr, int mn, int dy, int yr):birthday(mn, dy, yr)    {        if(nm!=0)        {           name = (char*)malloc(strlen(nm)+1);           strncpy(name, nm, strlen(nm)+1);        }        else             name=0;                if(adr!=0)        {            address = (char*)malloc(strlen(adr)+1);            strncpy(address, adr, strlen(adr)+1);        }        else            address=0;    }        PersonInfo(char *nm=0, char *adr=0):birthday(1,1,1900)    {        PersonInfo(nm,adr,1,1,1900);    }        ~PersonInfo()    {        free(name);         free(address);    }        char const * const getname() const    {         return name;    }        char const * const getaddress() const    {         return address;    }        ostream& output(ostream& temp)    {        if(name==0 && address==0)            return temp << "-, -" <<birthday.getDay()<<"."                        <<birthday.getMonth()<<"."<<birthday.getYear()<<endl;        if(name==0 && address!=0)            return temp << "-, "<<address<<birthday.getDay()<<"."                        <<birthday.getMonth()<<"."<<birthday.getYear()<<endl;        if(name!=0 && address==0)            return temp <<name<<", -" <<birthday.getDay()<<"."                        <<birthday.getMonth()<<"."<<birthday.getYear()<<endl;        return temp<<name<<", "<<address<<" - "<<birthday.getDay()<<"."                   <<birthday.getMonth()<<"."<<birthday.getYear()<<endl;    }private:    char *name; // Name    char *address; // Adresse    Date birthday; // Geburtstag: Objekt als Datenelement};int Date::count=0;ostream &operator<<(ostream &temp, PersonInfo &pers){    return pers.output(temp);}int main(void){    PersonInfo ich("htw4711","F-List-Platz 1",9,1,92);    cout<<ich;    PersonInfo du;    cout<<du;        cin.get();    return 0;}