Quelldatei will nicht compilieren



  • Hi, ich versuch mir gerade C++ beizubringen, hab gerade jedoch ein Problem mit einem Kapitel oder wahrscheinlich eher mit dem Linux Compiler.

    Vorerst die verschiedenen Quelldatein:

    Die Headerdatei:

    #ifndef _ARTIKEL_
    #define _ARTIKEL_
    #include <iostream>
    #include <string>
    using namespace std;
    
    class Artikel
    { 
           private: long   artikelnummer;
    		string artikelbezeichnung;
    		double preis;
    
           public: 	Artikel(long, const string&, double);
    		~Artikel();
    		void print();	
    
    inline long getan() { return artikelnummer; } 
    inline void setan( long n) { n=artikelnummer; } 
    //Artikelnummer
    inline string getb() { return artikelbezeichnung; } 
    inline void setb( string s) { s=artikelbezeichnung;}
    //Bezeichnung
    inline double getp() { return preis; } 
    inline void setp( double p) { if(p<0) {p=0.0;} else p=preis;}
    //Preis
    };
    #endif
    

    Datei mit den Konstruktoren:

    #include <artikel.h>
    
    int zaehler=0;
    
    Artikel::Artikel(long n, const string& b, double p)
    {
    	n=artikelnummer; b=artikelbezeichnung; p=preis;
    	++zaehler;
    	cout << zaehler << ". Artikel\n";
    }
    Artikel::~Artikel() { --zaehler; cout << zaehler << ". Artikel wurde zerstoert";  }
    
    Artikel::print()
    { 
    	cout << "Artikelnummer: " << artikelnummer << setw(20) << 
    		"Artikelbezeichnung: " << artikelbezeichnung << setw(20) << 
    		"Preis: " << preis;
    }
    

    Maindatei:

    #include "artikel.h"
    
    Artikel bier(123, "Bier", 0.48);
    
    int main()
    {	
      Artikel brot(456, "Brot", 2.00);
      bier.print();
      brot.print();
    }
    

    Die Übung soll einen Klassen und Methoden näher bringen. Manches kann auf die Profis vllt. suboptimal wirken. Die Dinge wurden aber so in der Aufgabe gefordert.

    Nachdem ich die vom Compiler angezeigeten Fehler alle korrigiert habe, spuckt er nun etwas aus, womit ich gar nichts anfangen kann, hab euch davon mal einen Screenshot gemacht:
    Klick
    Ich kann absolut nicht nachvollziehen was hier für ein Problem besteht, zumal der Compiler das erst angezeigt hat, als ich die vorher angezeiten Fehler korrigiert habe.



  • du solltest die Datei mit den Konstruktoren schon auch compilieren und dazulinken, wenn du das Ding erstellst ...



  • Du kompilierst nur main.cpp. Die "Datei mit den Konstruktoren" solltest du schon mitkompilieren.



  • a) Keine using-Direktiven im Header
    b) Include von eigenen Headern mit "" nicht mit <>
    c) Zuweisungen im Konstruktor (vielleicht mal nachgucken, was Initialisierungslisten sind)
    d) Rückgabetyp von print in der Definition
    e) setw braucht <iomanip>


Anmelden zum Antworten