2017-10-29 6 views
1

Ich bin neu in C++ und ich habe ein Beispiel in CodeBlocks geschrieben, um zu sehen, wie dieses Programm funktioniert. Hier ist das Programm:CPP-Programm läuft nicht

#include <iostream> 
#include <string> 

using std::cout; 
using std::cin; 
using std::endl; 
using std::string; 

class GradeBook 
{ 
    public: 
     GradeBook(string name) 
     { 
      setCourseName(name); 
     } 
     void setCourseName(string name) 
     { 
      courseName = name; 
     } 
     string getCourseName() 
     { 
      return courseName; 
     } 
     void displayMessage() 
     { 
      cout << "Welcome to the gradebook for \n" << getCourseName() << "!" << endl; 
     } 
    private: 
     string courseName; 
}; 

int main() 
{ 
    GradeBook gradeBook1("Introduction to C++"); 
    cout << gradeBook1.displayMessage() << endl; 
    return 0; 

} 

Und wie Sie habe ich sehen können eine displayMessage Funktion bei Haupt und es sollte grundsätzlich auszudrucken eine Erklärung basiert auf dem Argument aufgerufen, die ich ealier in gradeBook1 Objekt aufgerufen haben.

Aber das Problem ist, es startet nicht und ich weiß nicht warum!

Und hier ist das Fehlerprotokoll:

||=== Build: Debug in Youtube (compiler: GNU GCC Compiler) ===| 
C:\Users\Pouya\Desktop\C++_Tutorials\Youtube\main.cpp||In function 'int main()':| 
C:\Users\Pouya\Desktop\C++_Tutorials\Youtube\main.cpp|35|error: no match for 'operator<<' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'void')| 
+0

Hier ist dein Problem: cout << gradeBook1.displayMessage() << endl; und Sie rufen void displayMessage() auf. Rufen Sie gradeBook1.displayMessage() auf; dann wird es funktionieren – Asesh

Antwort

1

gradeBook1.displayMessage() ist eine Leere Funktion. Nichts in dieser Zeile zu drucken ->

cout << gradeBook1.displayMessage() << endl; 

entfernen cout. Einfach eingeben ->

gradeBook1.displayMessage(); 

Ich hoffe, es hilft. :)