C++与operator <<不匹配

rah*_*wla 2 c++ c++11

这是我的代码,我不确定为什么抛出错误 - 该方法应该在指针对象上操作并打印出它的值.

主要:

cout<<"Deleted item is: "<<displayRecord(tmp)/*tmp->entry*/<<endl;


void displayRecord(PRecord* pr) {
cout<<"Time: "<<pr->time<<"\tEntry data: \""<<pr->entry<<'"'<<endl;
}
Run Code Online (Sandbox Code Playgroud)

header.h:

#include <iostream>
using namespace std;
struct PRecord {
long time;
string entry;
struct PRecord *link;
};

void displayRecord(PRecord* pr);
Run Code Online (Sandbox Code Playgroud)

我收到此错误: error: no match for 'operator <<

 error: no match for 'operator<<' in 'std::operator<< [with _Traits = std::char_traits<char>](((std::basic_ostream<char, std::char_traits<char> >&)(& std::cout)), ((const char*)"Deleted item is: ")) << Priority_Queue::displayRecord(tmp)'
    /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/ostream:108: note: candidates are: std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>& (*)(std::basic_ostream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/ostream:117: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ios<_CharT, _Traits>& (*)(std::basic_ios<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/ostream:127: note:                 std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(std::ios_base& (*)(std::ios_base&)) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/lib/gcc/x86_64-redhat-linux
Run Code Online (Sandbox Code Playgroud)

raf*_*x07 8

您想要使用的错误很明显

cout << "Deleted item is: " << Priority_Queue::displayRecord(tmp);
Run Code Online (Sandbox Code Playgroud)

但它没有编译,因为displayRecord没有返回任何值.它返回void不可打印的类型,不能用作参数operator<<.呼叫

cout << "Deleted item is: ";
Priority_Queue::displayRecord(tmp);
Run Code Online (Sandbox Code Playgroud)