Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » C++ - Konstruktor in der Main() aufrufen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.12.2015, 18:26 Uhr
Tarnpflanze



Hallo

Ich programmiere mit C++ ein Programm welches mithilfe eines Konstruktors einen Artikel erstellt, welcher eine Artikelnummer, eine Artikelbezeichnung und einen Verkaufspreis beinhaltet. Jedoch bekomme ich es nicht hin, dass ich diesen Konstruktor von der Main() aus aufrufen kann. Ich bin schon ewig am probieren und bekomme es einfach nicht hin. (Google bringt hier auch nicht so viel).

Ich habe eine Main()-Datei, eine artikel.cpp-Datei und eine artikel.h-Datei:

Main():


C++:
#include <iostream>
#include <string>
class artikel;
using namespace std;

int main() {

artikel Hammer(123456, "Hammer", 19.95);

return 0;
}


Dies ist falsch doch dies währe meine Vermutung wie die Main() aussehen sollte.

artikel.cpp:


C++:
//artikel.cpp
//Übungsprogramm #22
//----------------------------------------------------------------------------------------------

#include "artikel.h"
using namespace std;

artikel::artikel(long artnr, const string& artbez, double verkpreis) {

    if (artnr < 0) { artikelnummer = 0; }            //Artikelnummer wird definiert
    else { artikelnummer = artnr; }

    if (verkpreis == 0) { verkaufspreis = 0.0; }    //Verkaufspreis wird definiert
    else { verkaufspreis = verkpreis; }

    artikelbezeichnung = artbez;                    //Artikelbezeichnung wird definiert
}

artikel::~artikel()
{
    cout << "Das Objekt \"artikel\" wird zerstört" << endl;
}




artikel.h:


C++:
//artikel.h
//Übungsprogramm #22
//----------------------------------------------------------------------------------------------

#ifndef _ARTIKEL_                                        //Mehrfache inkludierung verhindern
#define _ARTIKEL_
#include <iostream>
#include <string>

class artikel
{
private:                                                //Private Datenelemente
    long artikelnummer;                                        //Artikelnummer
    string artikelbezeichnung;                                //Artikelbezeichnung
    double verkaufspreis;                                    //Verkaufspreis

public:                                                    //Öffentliche Datenelemente
    artikel(long, const string&, double);
    ~artikel();
};

#endif        //_ARTIKEL_


Es wäre möglich, dass ich auch noch andere Fehler im Programm habe oder dass ich das zusammenspielen von artikel.cpp und artikel.h nich korrekt ausgeschrieben habe.

Ich hoffe ihr könnt mir helfen

Freundliche Grüsse
Euer Busch im Garten
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.12.2015, 20:27 Uhr
Hans
Library Walker
(Operator)


Hi,

wie wäre es, wenn Du uns die Fehlermeldungen mitteilst, die der Compiler heraus schmeisst, und was Du davon nicht verstehst. Dann können wir etwas besser weiter helfen.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.12.2015, 09:31 Uhr
ao

(Operator)


In der Main-Datei fehlt ein #include "artikel.h", deshalb kennt der Compiler zwar den Namen der Klasse artikel (weil du ihn genannt hast), weiß aber sonst nichts über sie.

Und es fehlt using namespace std;, dadurch kann in der Member-Definition "string artikelbezeichnung;" der Datentyp string nicht aufgelöst werden.
Die using-Anweisung muss eingefügt werden:
* entweder in der artikel.h vor der ersten Verwendung, also vor Beginn der "class"-Definition
* oder in allen .cpp-Dateien, die artikel.h inkludieren, und zwar vor dem #include-Statement.
Oder man verzichtet ganz auf using und schreibt vor jedes Objekt, das aus dem Namensraum std kommt, ein "std::"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.12.2015, 20:10 Uhr
Tarnpflanze



Vielen Dank für die Antwort. Nach dem Inkludieren der "artikel.h" und dem "using namespace std;" hat alles geklappt.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: