2012-03-26 11 views
1

Ich habe ein C++ Projekt, an dem ich arbeite. Ich bin im Moment ein wenig ratlos. Ich brauche ein wenig Hilfe. Ich muss Code aus der .h-Datei in die main.cpp-Datei implementieren und bin mir nicht sicher, wie das geht.Wie würde ich Code in einer .h-Datei in die main.cpp-Datei implementieren?

Zum Beispiel Code Code aus main.cpp:

switch (choice){ 
case 1: // open an account 
    { 
    cout << "Please enter the opening balence: $ "; 
    cin >> openBal; 
    cout << endl; 
    cout << "Please enter the account number: "; 
    cin >> accountNum; 
    cout << endl; 

    break; 
    } 
case 2:// check an account 
    { 
    cout << "Please enter the account number: "; 
    cin >> accountNum; 
    cout << endl; 
    break; 
    } 

und Code aus der h-Datei:

void display(ostream& out) const; 
// displays every item in this list through out 

bool retrieve(elemType& item) const; 
// retrieves item from this list 
// returns true if item is present in this list and 
//    element in this list is copied to item 
//   false otherwise 

// transformers 
void insert(const elemType& item); 
// inserts item into this list 
// preconditions: list is not full and 
//    item not present in this list 
// postcondition: item is in this list 

In der H-Datei müssen Sie den Leereinsatz unter Transformator verwenden, in der main.cpp in Fall 1. Wie würden Sie das tun? Jede Hilfe ist erwünscht. Ich hoffe, ich habe niemanden verwirrt, was ich tun muss. Dank

+0

die .h-Datei in Ihrer main.cpp-Datei enthalten und macht die Implementierung. Wenn Ihre .cpp nicht die Startup-Datei ist (ohne main), müssen Sie eine weitere .cpp-Datei schreiben und dann eine Verknüpfung zum Hauptprogramm herstellen. – Jagannath

+0

Ich habe die .h-Datei am Anfang der main.cpp-Datei enthalten – Lea

Antwort

1

In main.cpp Sie benötigen eine Header-Datei an der Spitze gehören, wie folgt aus:

#include "header_file.h" 

Jetzt sollten Sie in der Lage sein, sich frei insert() unter case 1: nennen wie man wollte.

Diese Funktionsdeklarationen werden jedoch nicht ohne Implementierungen wirklich viel tun. Also, Sie haben ein paar Möglichkeiten. Sie können die Implementierungen in main.cpp setzen, oder Sie können eine neue .cpp Datei erstellen, in der die Implementierungen dieser Funktionen gespeichert sind. (Keine Sorge, der Linker kümmert sich um das gesamte "separate Quelldatei" -Geschäft)

Die sehr einfache Methode zum Deklarieren von Funktionen in einer Headerdatei und deren Implementierung in einer cpp-Datei kann wie folgt umrissen werden:

foo.h Datei:

void insert(const elemType& item); // This is your declaration 

foo.cpp Datei:

#include "foo.h" 
void insert(const elemType& item) 
{ 
    // Function should do its job here, this is your implementation 
} 
+0

Ich habe eine andere .cpp-Datei, die alle Implementierungen für die Funktionen in der .h-Datei enthält. Also bin ich mir nicht sicher, ob ich irgendetwas von der anderen .cpp Datei im Hauptteil für die Funktionen einschließen muss, um durchzugehen. – Lea

+0

Erhalten Sie Fehler? Was passiert, nachdem die Quelldateien kompiliert wurden, verbindet der Linker (wie sein Name andeutet) sie miteinander, als wären sie eine große kompilierte Quelldatei. Sie müssen sich keine Sorgen machen, wenn sich die Implementierungen in separaten Quelldateien befinden, der Linker sollte sich darum kümmern. –

+0

okay. Aber ich weiß immer noch nicht, wie man die Einfügung in der main.cpp im ersten Fall verwendet, wenn die Implementierung unter einer anderen .cpp-Datei ist. – Lea

0

Nun, Sie, wenn Sie die Header-Datei aufgenommen haben, sollten Sie jede func umsetzen können die Sie in diesem Header deklariert haben. Zum Beispiel, Sie wollten die insert Funktion, Ihre main.cpp implementieren sollten wie folgt aussehen:

#include "myhfile.h" 

void insert(const elemType& item) 
{ 
    // implement here 
} 

int main() 
{ 
    // your switch here 
    // you can now use insert(item) because it is implemented above 
} 
Verwandte Themen