C++ C++;流插入运算符返回位而不是字符串

C++ C++;流插入运算符返回位而不是字符串,c++,io,C++,Io,我的问题是,当我尝试通过cout使用流插入运算符函数时,它返回一个类似“0x55d55d9a6eb0”的字符串,而不是一个来自输出的多行描述性字符串我的问题是尝试使用带有带地址的流插入的指针对象,将流插入运算符更改为指针后,一切正常。相关代码不足。您也可以尝试将endl更改为'\n'。您很少需要手动刷新,并且在尝试插入流时不断刷新似乎不太理想。但是,最大的问题是您过载了operator@sweenish你认为我可以用&&反引用指针吗?这样行吗 template <class V> /

我的问题是,当我尝试通过cout使用流插入运算符函数时,它返回一个类似“0x55d55d9a6eb0”的字符串,而不是一个来自输出的多行描述性字符串我的问题是尝试使用带有带地址的流插入的指针对象,将流插入运算符更改为指针后,一切正常。

相关代码不足。您也可以尝试将
endl
更改为
'\n'
。您很少需要手动刷新,并且在尝试插入流时不断刷新似乎不太理想。但是,最大的问题是您过载了
operator@sweenish你认为我可以用&&反引用指针吗?这样行吗
template <class V>
//friend ostream& operator<<(ostream&, const Report<V>&);
//CORRECTED VERSION:
friend ostream& operator<<(ostream&, const Report<V>*);
...
template <class V>
ostream& operator<<(ostream& output, const Report<V>& b)
{
  for(int i = 0;i<b.rows.size();i++){
    output << b.rows[i].row <<endl;// b.rows[i].row is a 1 line string
  }
  return output;
}
...
//how I am using the stream insertion operator in a seperate function:

void Main::print(Report<int> *r) {
    cout << r <<endl;//I have tried changing to &r, *r but no luck
}