【发布时间】:2016-12-11 08:50:53
【问题描述】:
std::ostream& operator<<(std::ostream&, const Course&);
void Course::display() {
std::cout << std::left << courseCode_ << " | " << std::setw(20) << courseTitle_ << " | " << std::right
<< std::setw(6) << credits_ << " | " << std::setw(4) << studyLoad_ << " | ";
}
std::ostream& operator<<(std::ostream& os, const Course& a) {
a.display();
return os;
}
问题发生在a.display() 下方的ostream 运算符的实现上。
我看不出问题出在哪里,我有其他代码可以使用相同的实现。
错误信息:
对象具有与成员函数“sict::Course::display”不兼容的类型限定符,对象类型为 const sict::Course
【问题讨论】:
-
link的可能重复
-
Course::display函数,为什么要硬编码写入std::cout?如果您想写入文件怎么办(这可能与您拥有的operator<<重载有关)?
标签: c++ operator-overloading iostream member-functions