C++错误:与'operator<<'不匹配
C++ error: no match for 'operator<<'
您好,我有一个错误问题,我不明白问题是什么。所以这里是完整的代码:
#include <iostream>
#include <string>
using namespace std;
class GradeBook
{
public:
GradeBook(string name)
{
setCourseName(name);
} // end GradeBook constructor
void setCourseName(string name)
{
courseName = name;
} // end setCourseName
string getCourseName()
{
return courseName; // return object's courseName
} // end getCourseName
void displayMessage()
{
cout << "Welcome to the grade book forn" << getCourseName() << "!" << endl;
} // end displayMessage
private:
string courseName;
}; // end class GradeBook
int main()
{
// create two GradeBook objects
GradeBook gradeBook1("CS101 Introduction to C++ Programming");
GradeBook gradeBook2("CS102 Data Structures in C++");
cout << "gradeBook1 created for course: " << gradeBook1.displayMessage();
}
错误部分是当我尝试打印出此行时:
cout << "gradeBook1 created for course: " << gradeBook1.displayMessage();
如果我像gradeBook1.displayMessage();
一样使用它,它会打印消息,但如果我像我显示的那样使用它,它会给我带来令人讨厌的错误。
谢谢!
displayMessage()
是一个返回 void
的函数。您无法流式传输此内容,因为它什么都不是。只需在单独的行中调用它。
改变
cout << "gradeBook1 created for course: " << gradeBook1.displayMessage();
自
cout << "gradeBook1 created for course: ";
gradeBook1.displayMessage();
它被扩展为:
<<
{ cout << "Welcome to the grade book forn" << getCourseName() << "!" << endl } ;
这肯定是不合逻辑的 .
所以,使用:
cout <<"gradeBook1 为课程创建:"; gradeBook1.displayMessage();
如果要将
<<
运算符与classgradeBook1一起使用,请重载运算符。而不是在类中使用 displayMessage();
方法。
ostream &operator<<(ostream &out)
{
out<<"Welcome to the grade book forn" << getCourseName() << "!" << endl;
return out;
}
您可以使用 cout 调用您的对象,如下所示:
cout<<gradeBook1;
相关文章:
- Qt SQLite没有查询或参数计数不匹配
- 模板参数推导失败,函数参数/参数不匹配
- 在使用累加时,C++中的运算符+不匹配
- C++ 与操作员不匹配<<
- 在 Arduino 上使用 sscanf 会导致与 const char * 不匹配,并且返回值始终相同,尽管输入值不同
- 与'operator='不匹配(操作数类型'String'且"void")
- C++模板/别名 - 模板参数列表中参数 1 处的类型/值不匹配
- C4018:类内有符号、无符号不匹配
- 我在 .h 中有一个枚举类,并且在.cpp错误中有一个运算符重载:与"运算符<<不匹配
- 为什么我收到错误:"运算符<<不匹配?
- RE2 不匹配非 ASCII 字符
- 函数签名与调用的函数不匹配,常量字符[]和字符*之间的区别?
- 模板推导:为什么函数指针模板定义在常量和/或引用时不匹配?
- 错误:"模板<类_Tp,类_Dp>类 std::unique_ptr"的模板参数列表中参数 1 的类型/值不匹配
- OpenSSL fips in C++ wrapper Library 如何?错误:指纹不匹配
- 为什么我的数组值与此处的全局变量不匹配?
- 引号之间匹配/不匹配,带有不可避免的引号和多行
- 映射迭代器与运算符不匹配
- C++调用和定义不匹配
- 模板专用化与派生类不匹配