2014-01-13 3 views
0

Я пытаюсь вызвать функцию внутри класса, когда я пытаюсь получить ошибку «no operator < < соответствует этим операндам« прямо перед инструктором.displayMessage(). Кроме того, я правильно вызываю инструктор.displayMessage()? Я новичок в C++Как вызвать функцию внутри класса

#include <iostream> 
#include "GradeBook.h" 
using namespace std; 
int main() 
{ 
    GradeBook gradeBook1("CS101 Introduction to C++ Programming"); 
    GradeBook gradeBook2("CS102 Data Structures in C++"); 
    GradeBook instructor(""); 

    instructor.setInstructorName(); 

    cout << "gradeBook1 created for course: \n" << gradeBook1.getCourseName() << instructor.displayMessage() 
     << "\ngradeBook2 created for course: \n" << gradeBook2.getCourseName() 
     << endl; 
    cout << "\nPress any key to exit" << endl; 
    getchar(); 
} 

Заголовок:

#include <string> 
using namespace std; 

class GradeBook{ 
public: 
    GradeBook(string); 
    void setCourseName(string); 
    string getCourseName(); 
    void displayMessage(); 
    void setInstructorName(); 
    string getInstructorName(); 
private: 
    string courseName; 
    string instructorName; 
}; 

я не включают в себя функции, потому что я не думаю, что они являются частью проблемы.

+1

Я думаю, что термин, который вы ищете, является функцией _member_. – keyser

ответ

3
void displayMessage(); 

Эта функция не возвращает ничего, пока вы пытаетесь напечатать ее возвращаемое значение здесь:

cout << "gradeBook1 created for course: \n" << gradeBook1.getCourseName() << instructor.displayMessage() 

Если это на самом деле должен вернуть что-то, то вы должны объявить его с правильным типом возвращаемого значения, например

string displayMessage(); 

Однако название предполагает, что сама функция печатает результат. Поэтому, возможно, вы просто хотите назвать это:

instructor.displayMessage(); 

в одной строке.

Если вы предоставляете реализацию displayMessage(), я могу дать более точный ответ.

Смежные вопросы