Guten Nabend,
Ich bekomme leider folgende Fehlermeldung, wenn ich versuche mein c++ Programm zu kompilieren:
/tmp/ccNFwaJ8.o: In function `main':
main.cpp:(.text+0x28): undefined reference to `Angestellter::Angestellter()'
main.cpp:(.text+0x4b): undefined reference to `Angestellter::ZeigVornamen()'
main.cpp:(.text+0x64): undefined reference to `Angestellter::ZeigNamen()'
main.cpp:(.text+0xe2): undefined reference to `Angestellter::ZeigBrutto()'
main.cpp:(.text+0x17b): undefined reference to `Angestellter::~Angestellter()'
collect2: Fehler: ld gab 1 als Ende-Status zurück
Ich finde leider den Fehler nicht. Vielleicht bin ich auch zu doof, Googel zu nutzen, will ich nicht abstreiten.
Ich habe versucht in Sublime Text zu komplilieren, Geany, aus VIM und über den Terminal.
Im Terminal habe ich es mit:
g++ main.cpp -I angestellter3funk.h
probiert. Leider kein Erfolg. Für Hilfe oder den passenden Link wo ich die Lösung finde, wäre ich recht dankbar.
Hier noch der Quelltext des Programms:
main.cpp:
#include <iostream>
#include <string>
#include "angestellter3funk.h"
using namespace std;
int main(void)
{
double Bruttolohn;
int i;
Angestellter *Ang[5]; //Zeigerarray für Objekte
for (i=0; i<5; i++)
{
Ang[i] = new Angestellter;
cout << "Nachname : " << Ang[i]->ZeigNamen() << endl
<< "Vorname : " << Ang[i]->ZeigVornamen() << endl;
Bruttolohn = Ang[i]->ZeigBrutto();
cout << "Bruttolohn Angestellter" << (i+1) << " : "
<< Bruttolohn << endl << endl;
}
for(i=0; i<5; i++)
delete Ang[i];
return 0;
}
angestellter3funk.h:
#ifndef angestellter3funk_h
#define angestellter3funk_h
using namespace std;
#include <string>
class Angestellter
{
private:
string Nachname;
string Vorname;
double Brutto;
public:
//Konstruktor
Angestellter(string, string, double);
Angestellter();
//Destruktor
~Angestellter();
//Methoden
double ZeigBrutto(void);
string ZeigNamen(void);
string ZeigVornamen(void);
void SchreibBrutto(double);
};
#endif
angestellter3funk.cpp:
#include <string>
#include "angestellter3funk.h"
using namespace std;
Angestellter::Angestellter(string N, string V, double B)
{
Nachname = N;
Vorname = V;
Brutto = B;
}
Angestellter::Angestellter()
{
Nachname = "Unbekannt";
Vorname = " ";
Brutto = 0.0;
}
Angestellter::~Angestellter()
{
}
double Angestellter::ZeigBrutto(void)
{
return Brutto;
}