运算符<<重载“错误:传递'const ....”
ofstream& operator<<(ostream &outStream, const EventClass &eventObject)
{
  outStream << eventObject.getEventName() << " event at "
    << eventObject.getEventTime() << endl;
  return(outStream);
}
我相信这段代码足以分析错误。
当我编译我的代码时,出现以下错误:
  错误:作为'std :: string EventClass :: getEventName()'的'this'参数传递'const EventClass'丢弃限定符[-fpermissive] 
  outStream << eventObject.getEventName()<<“event at” 
  错误:将'const EventClass'作为'int'的参数传递给'int EventClass :: getEventTime()'丢弃限定符[-fpermissive] 
  << eventObject.getEventTime()<< endl; 
  错误:类型'std :: ofstream&{aka std :: basic_ofstream&''从std :: ostream {aka std :: basic_ostream}'表达式的引用无效初始化' 
  回报(outStream); 
任何想法如何解决这些错误?
  您需要确保getEventName和getEventTime声明为const ,如下所示: 
std::string getEventName() const;
int getEventTime() const;
  在EventClass的声明和实现中。  这告诉编译器这些方法不会以任何方式修改对象的字段。 
  另外,运营商的最后一行应该是: return outStream; 
  编辑:也std::ofstream是不一样的std::ostream 。  通常,对于operator<< ,它需要定义为: 
std::ostream& operator<<(std::ostream& os, const EventClass& eventObject) { 
    //blah 
}
包含任何流类型。
  eventObject是对const对象的引用,所以它的getEventName()和getEventTime()方法也需要声明为const ,以指定它们不会修改它们被调用的对象,例如: 
std::string getEventName() const;
int getEventName() const;
  另外,你的运算符被声明为返回一个ofstream ,但它需要返回一个ostream来匹配输入: 
ostream& operator<<(ostream &outStream, const EventClass &eventObject)
