C ++ не подходит для оператора < - PullRequest
0 голосов
/ 25 октября 2018

Вот мой код, я не уверен, почему выдается ошибка - метод должен работать с указателем и выводить его значения.

main:

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


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

header.h:

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

void displayRecord(PRecord* pr);

Я получаю эту ошибку: 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

1 Ответ

0 голосов
/ 25 октября 2018

Ошибка ясна, вы хотите использовать

cout << "Deleted item is: " << Priority_Queue::displayRecord(tmp);

, но она не компилируется, потому что displayRecord не возвращает значения.Он возвращает void type, который не может быть напечатан и не может использоваться в качестве аргумента для operator<<.Звоните

cout << "Deleted item is: ";
Priority_Queue::displayRecord(tmp);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...