问答详情
源自:3-2 案例完善

运行后出现undefined reference to `operator<<(std::ostream&, Coordinate&)'的错误

----------遍历函数-----------------------------------------

template<typename T>
void MyStack<T>::stackTraverse(bool Transform)
{
 if(Transform)
 {
  for(int i = 0; i < m_iTop; i++)
  {
   cout<<m_pBuffer[i];
   //m_pBuffer[i].printCoordinate();
  }
 }
 else
 {
  for(int i = m_iTop-1; i >= 0; i--)
  {
   cout<<m_pBuffer[i];
   //m_pBuffer[i].printCoordinate();
  }
 }
 cout<<endl;
}


------------重载-------------------------

ostream& operator<<(ostream &out, Coordinate &coor)
{
 out<<"<"<<coor.m_iX<<","<<coor.m_iY<<">"<<endl;
 return out;
}

提问者:慕粉1471690861 2017-07-25 21:04

个回答

  • Cocoabeans
    2018-07-30 14:30:00

    可能是没有#include<ostream>和using namespace std

  • 一个严肃的小逗比
    2017-07-28 15:12:43

    头文件的问题吧,或者就是 你重载函数的时候出现了问题。