Programmfehler

code :

class TelefonPlusFaxeintrag:public Telefoneintrag
{
public:
void anzeigen();
private:
int datei;
};

void TelefonPlusFaxeintrag::anzeigen()
{
Telefoneintrag.anzeigen(); // expected primary-expression before '.' token
cout << "Fax: " << datei ;
}
 
Hi nochmal
hab ein fehler siehe unten ?

code:
Code:
#include <cstdlib>
#include <iostream>

using namespace std;

class Telefoneintrag
{
      public:
      Telefoneintrag();
      Telefoneintrag(char *name,int tel){strcpy (ename,name); telefonnummer = tel;}
      virtual void anzeigen();
      private:
      char ename[50];
      int telefonnummer;
};

void Telefoneintrag::anzeigen()
{
     cout << ename << "\t" << telefonnummer << endl;
}

class TelefonPlusFaxeintrag:public Telefoneintrag
{
      public:
      TelefonPlusFaxeintrag(char *ename,int efax,int etel){strcpy(name,ename);
                                                           tel=etel;
                                                           faxnr=efax;
                                                           }       
      void anzeigen();
      private:
      char name[20];        
      int faxnr;
      int tel;
};

void TelefonPlusFaxeintrag::anzeigen()
{   
      Telefoneintrag::anzeigen();
      cout << "Fax: " << faxnr ;
}

class Telefonverzeichnis
{
      public:
      Telefonverzeichnis();
      Telefonverzeichnis(char *city,char *vorw){strcpy(stadt,city); strcpy(vorwahl,vorw);
                                                }
      void eintragen (Telefoneintrag tel);
      void eintragen (TelefonPlusFaxeintrag telfax);
      void anzeigen();
      
      private:
      char stadt[80];
      char vorwahl[10];
      int anzahl;
      Telefoneintrag *tele[5];    

};

void Telefonverzeichnis::anzeigen()
{
      for (int i=0;i<anzahl;i++)
      {
          tele[i]->anzeigen();
      
      cout << "Eintraege aus " << stadt << "Vorwahl: " << vorwahl << endl;
      }
}


int main(int argc, char *argv[])
{
    Telefoneintrag test ("mustermann",33396);
    TelefonPlusFaxeintrag test2 ("mustermann2",27071,27570);
    test.anzeigen(); 
    test2.anzeigen();
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
Fehler: [Linker error] undefined reference to `Telefoneintrag::Telefoneintrag()'
 
Hy!

Du hast angegeben das du selbst einen Construktor schreibst, hast das aber nicht gemacht, du musst den Construktor von Telefoneintrag noch schreiben, also
Code:
Telefoneintrag::Telefoneintrag() {
  //wasimmer du initialisieren möchtest, warsch den namen und die telefonnummer, z.B.
  telefonnummer = 0;
}
besser wäre dann allerdings
Code:
Telefoneintrag::Telefoneintrag()
 : telefonnummer(0) {}

Wäre es nicht besser wenn du für die Telefonnummer auch einen String verwenden würdest (Sonderzeichen, lange Nummer wegen Vorwahl...)

PS: Verwende bitte die Code-Tags

mfg
uhu01
 
Zurück