c++, Wie man richtig aufteilen .cpp in einem .cpp und eine .h

Ich bin wirklich neu ist die Aufteilung ein .cpp in einem .cpp und eine .h.

Ich verwendet habe .h-Dateien vor, aber wirklich nie split ein .cpp in einem .cpp und eine .h.

Weiß ich .h-Dateien sind nur für Erklärungen und .cpp sind für Definitionen, und ich versuchte, zu teilen .cpp in einem .cpp und eine .h aber ich bekomme eine Menge von Fehlern, so Frage ich mich, wenn mir jemand helfen kann mit meinem code.

Die folgende Klasse ist die Klasse, die noch NICHT aufgeteilt wurden, in eine .cpp und eine .h doch, nur um zu zeigen Sie die Jungs, die "vor-version".

TicketOrder.cpp

#include <iostream>

using namespace std;

class TicketOrder
{

private :

        char type;
        int quantity;

public :

          friend std::ostream& operator<<(std::ostream& os, TicketOrder const& order)
         {
                 os << " Type: " << order.type << ", Quantity: " << order.quantity;
                 return os;
         }


        //Getters

        int getQuantity() const;
         {
                        return quantity;
         }

        char getType() const;
          {
                        return type;
          }

        //Setters    

        void setQuantity (int x)
                {
                        quantity =x;
                }

        void setType(char y)
                {
                        type =y;
                }   
};

Nun, ich Teile die oberhalb der Klasse in einem .cpp und eine .h

TicketOrder.cpp

#include <iostream>
#include "TicketOrder.h"
using namespace std;

class TicketOrder
{

        //Getters

        int getQuantity() const
                {
                        return quantity;
                }

        char getType() const
                {
                        return type;
                }

        //Setters

        void setQuantity (int x)
                {
                        quantity =x;
                }

        void setType(char y)
                {
                        type =y;
                }        
};

TicketOrder.h

#include <iostream>

using namespace std;

class TicketOrder
{

private :

        char type;
        int quantity;

public :

          friend std::ostream& operator<<(std::ostream& os, TicketOrder const& order)
        {
                 os << " Type: " << order.type << ", Quantity: " << order.quantity;
                 return os;
        }

        //Getters

        int getQuantity() const;    
        char getType() const;

        //Setters

        void setQuantity (int x);    
        void setType(char y);       
};

Habe ich eine andere Klasse verwendet und enthält die main-Klasse, die werde ich nicht zählen, weil hier lange und ich finde es nicht wichtig, weil ich weiß, ich mache das .h und .cpp falsch.

Wenn ich versuche zu kompilieren die wichtigsten, es gibt mir diese Fehlermeldung:

Undefined                       first referenced
 symbol                             in file
TicketOrder::getQuantity() const    /var/tmp//ccaSflFG.o
TicketOrder::setType(char)          /var/tmp//ccaSflFG.o
TicketOrder::setQuantity(int)       /var/tmp//ccaSflFG.o
ld: fatal: Symbol referencing errors. No output written to a.out
collect2: ld returned 1 exit status

Kann mir jemand helfen mit der Spaltung der .h und die .cpp? Oder geben Sie mir Anregungen? Ich habe viel recherchiert und kann nicht herausfinden, was falsch ist.

Danke.

  • 1) verwenden Sie ein minimal-Beispiel, 2) gehen Sie einfach mit Leerzeichen, 3)nicht duplizieren Sie die Erklärung der TicketOrder.
  • Doppelte Deklarationen der Klasse wäre in Ordnung (die Aussehen wie class TicketOrder;, aber hier haben wir eine doppelte definition.
  • du hast Recht, ich stehe korrigiert.
InformationsquelleAutor r1nzler | 2012-02-08
Schreibe einen Kommentar