2016-04-29 4 views
0

Ich erstelle eine kleine Quelldatei/Projekt für die Klasse und ich bekomme weiterhin die Fehler 'Klasse TermPaper' hat kein Mitglied namens 'setfirstName'/'setlastName'/' setsubject '' usw. Grundsätzlich ist jede Zeile mit .set oder .get ein Fehler.Fehler: 'Klasse TermPaper' hat kein Mitglied mit dem Namen ''

#include <iostream> 
#include <string> 
#include "TermPaper.cpp" 
#include "TermPaper.h" 
using namespace std; 

int main(int argc, char** argv) { 

    //Declare variables 
    TermPaper paper1; 
    string firstName; 
    string lastName; 
    string subject; 
    char grade; 

    cout << "Please enter first name. " << endl; 

    cin >> firstName; 

    cout << "Please enter last name." << endl; 

    cin >> lastName; 

    cout << "Please enter subject." << endl; 

    cin >> subject; 

    cout << "Please enter letter grade." << endl; 

    cin >> grade; 

    paper1.setfirstName(); 
    paper1.setlastName(); 
    paper1.setsubject(); 
    paper1.setgrade(); 

    cout << "First name:" << paper1.getfirstName() << endl; 

    cout << "Last Name: " << paper1.getLastName() << endl; 

    cout << "Subject: " << paper1.getSubject() << endl; 

    cout << "Grade: " << paper1.getGrade() << endl; 

    return 0; 
} 

dies ist die CPP-Datei, die ich erstellt, und unten ist die CPP-Datei, die ich von meinem Lehrer gegeben wurde, und sagte in die Projektordner zu kopieren, die oben in meinen Code. Hier nehme ich an, dass die Klasse TermPaper definiert wurde, und ich bin nicht zuversichtlich genug, sie zu bearbeiten, da ich befürchte, dass ich nur noch mehr Fehler erzeuge.

Ich bin nicht ganz sicher, ob es ein Fehler mit der Datei mein Lehrer mir gab, war (es gab nicht vom Compiler erkannt wird) oder wenn ich nur etwas zu vergessen, bin in meinem eigenen Code. Seit einer Stunde durchsuche ich meine Lehrbücher, und alle Beispiele sagen mir nichts.

jede Hilfe wäre toll, vor allem seit dies meine vorletzte Aufgabe für das Semester!

Antwort

3

Die von der CPP-Datei enthalten wies darauf hin, von Michael Albers ist ein absolutes no-no, das viel Leid bringen wird, aber ...

Aber ich sehe nicht setfirstName unter den Methoden der TermPaper in den entsandten Schnipsel. Versuchen Sie, die setFName Methode aufzurufen, die von TermPaper bereitgestellt wird, und vergessen Sie nicht, dass Sie die erforderlichen Parameter der Methode angeben müssen. Ohne die Parameter hat der arme Compiler keine Ahnung, was Sie zu tun versuchen. Es wird nach einer Funktion suchen, die aussieht wie void TermPaper::setFName() * und nicht eine finden.

paper1.setFName(firstName); 
paper1.setLName(lastName); 
paper1.setSubject(subject); 
paper1.setLetterGrade(grade); 

* Dies ist nicht ganz richtig. Es wird nach etwas suchen, das wie TermPaper::setFName() mit einem beliebigen Rückgabetyp aussieht. Überladen basiert immer auf den Parametern und gibt keinen Hinweis auf den Rückgabetyp.

+0

'setsubject' und' setgrade' sind auch nicht in 'TermPaper' definiert. Sie scheinen "setSubject" bzw. "setLetterGrade" zu sein. – computerfreaker

+0

Vielen Dank. Korrigiert. – user4581301

+0

Vielen Dank! Es wurde korrekt kompiliert. Ich schätze, ich habe die Namen für diese Zeilen vertuscht, mein Schlechter. – sighs

2

Entfernen Sie das Include der CPP-Datei. In der Regel enthalten Sie nur die .h-Datei und die .cpp-Datei wird in eine eigene separate Objektdatei (.o) kompiliert. Dann werden alle O-Dateien miteinander in der ausführbaren Datei verknüpft. In Ihrem Fall könnten Sie wahrscheinlich die Funktionskörper in Ihre Quelldatei einschließen, aber sie müssen hinter dem Include des .h stehen, sonst weiß der Compiler nicht, wie diese Klasse "aussieht" (dh die Definition der Klasse).

Verwandte Themen