Datenelemente in C++ erstellen (Klassen)

BasicC

Erfahrenes Mitglied
Hallo Leute das ist meine Aufgabe

Erstellen Sie eine Klasse Artikel. In dieser Klasse sind Datenelemente (Artikelnummer, Artikelname, Verkaufspreis), Methoden (get- und set-Methoden) und ein Konstruktor und Destruktor vorgegeben. Sie sollen diese Klasse in einer separaten Quelldatei testen, in dem Sie 3 Objekte erzeugen und deren Methoden aktivieren.
a. Erstellen Sie zunächst eine Klasse Artikel.h, in der Sie die Klasse definieren.
b. Dann erstellen Sie eine separate Quelldatei, in der Sie die gegebenen Methoden (Konstruktor, Destruktor, print), die nicht bereits inline definiert sind, der Klasse definieren. Der Konstruktor und Destruktor zeigen Aufrufe an. Die Methode print() zeigt einen Artikel am Bildschirm an.
c. Zum Schluss erstellen Sie eine separate Quelldatei, die die Klasse Artikel testet.

was ich bisher habe ist das, aber XCode gibt den Fehler clang aus verstehe nicht warum.

Code:
#ifndef Artikel_hpp

#define Artikel_hpp

#include <string>

using namespace std;



class Artikel{



private:

    long nr;        /*Artikelnummer*/

    string name;    /*Artikelname*/

    double vk;      /*Verkaufspreis*/

   

public:

    Artikel (long nr = 0, const string& name ="",

             double vk=0.0);

   

    /*Artikel( const Artikel& einArtikel);*/

  

    void print();

   

    const string& getName() const { return name; }

    long          getNr()   const { return nr; }

    double        getVK()   const { return vk; }

   

    bool setName( const string& s)

    {

        if ( s.size() < 1) /* darf kein leerer Name sein*/

            return false;

        name = s;

        return true;

    }

   

    void setNr( long n) { nr = n; }

    void setVK( double v){ vk = v; }

   

};



#endif /* Artikel_hpp */

Code:
#include "Artikel.hpp"

#include <iostream>

#include <iomanip>

using namespace std;



Artikel::Artikel( long nr, const string& name, double vk)

{

    setNr(nr); setName(name); setVK(vk);

   

    cout << " Objekt für den Artikel  "<< name << " ist angelegt.\n" << endl;

}



/*Artikel::Artikel(const Artikel& art):nr(art.nr), name(art.name), vk(art.vk)

{

   cout << " Die Kopie des Artikels " << name << "ist angelegt\n"

    << endl;

}

*/

void Artikel::print()

{

    cout << "Artikelnummer:" << nr << endl;

    cout << "Artikelname: " << name << endl;

    cout << "Verkaufspreis: " << vk << endl;

   

}

Code:
#include "Artikel.hpp"

#include <iostream>

#include <string>

using namespace std;



void test( /*Artikel a*/);



Artikel artikel1 ( 1010, "Buch", 10.0);



int main ()

{

    Artikel artikel2( 1101, "Jogging-Schuhe", 110.0);

   

    cout << "1. und 2. Artikel \n" << endl;

    artikel1.print();

    artikel2.print();

   



    return 0;

}



void test(Artikel a)

{

    cout << "Das Objekt:" << endl;

    a.print();

   

    static Artikel Schuh( 421,"Schnuersenkel", 20.0);

    cout << " Das Kopierartikel" << endl;

    Schuh.print();

   

}
 

BasicC

Erfahrenes Mitglied
Hab es gelöst hatte in Xcode noch ein anderes Programm zum Kompilieren angeklickt gehabt hab es raus genommen und dann funktionierte es.
 

Neue Beiträge