error: no match for ‘operator<<’ (operand types are ‘std::ostream aka std::basic_ostream’ and ‘void’)









up vote
-4
down vote

favorite












This is my code (I write the essence only) and I get this:



error: no match for ‘operator<<’ (operand types are ‘std::ostream aka std::basic_ostream’ and ‘void’)



class Mobil 
public:
void print() const;
int getNumber() const;
double getData() const;
friend ostream& operator <<(ostream&, const Mobil&);
;

ostream& operator<<(ostream& out, const Mobil& mobil)
out << mobil.print() << endl;
return out;



what is the problem?










share|improve this question







New contributor




P. Mark is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 2




    Problem is this line: out << mobil.print() << endl;. Your print() method doesn't return anything (is type of void), so it can't be send to ostream
    – Rhathin
    yesterday






  • 1




    @Rhathin that sounds like a perfect answer to me.
    – darune
    yesterday






  • 1




    @Rhathin Don't answer in the comments section, thanks.
    – Lightness Races in Orbit
    yesterday














up vote
-4
down vote

favorite












This is my code (I write the essence only) and I get this:



error: no match for ‘operator<<’ (operand types are ‘std::ostream aka std::basic_ostream’ and ‘void’)



class Mobil 
public:
void print() const;
int getNumber() const;
double getData() const;
friend ostream& operator <<(ostream&, const Mobil&);
;

ostream& operator<<(ostream& out, const Mobil& mobil)
out << mobil.print() << endl;
return out;



what is the problem?










share|improve this question







New contributor




P. Mark is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.















  • 2




    Problem is this line: out << mobil.print() << endl;. Your print() method doesn't return anything (is type of void), so it can't be send to ostream
    – Rhathin
    yesterday






  • 1




    @Rhathin that sounds like a perfect answer to me.
    – darune
    yesterday






  • 1




    @Rhathin Don't answer in the comments section, thanks.
    – Lightness Races in Orbit
    yesterday












up vote
-4
down vote

favorite









up vote
-4
down vote

favorite











This is my code (I write the essence only) and I get this:



error: no match for ‘operator<<’ (operand types are ‘std::ostream aka std::basic_ostream’ and ‘void’)



class Mobil 
public:
void print() const;
int getNumber() const;
double getData() const;
friend ostream& operator <<(ostream&, const Mobil&);
;

ostream& operator<<(ostream& out, const Mobil& mobil)
out << mobil.print() << endl;
return out;



what is the problem?










share|improve this question







New contributor




P. Mark is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











This is my code (I write the essence only) and I get this:



error: no match for ‘operator<<’ (operand types are ‘std::ostream aka std::basic_ostream’ and ‘void’)



class Mobil 
public:
void print() const;
int getNumber() const;
double getData() const;
friend ostream& operator <<(ostream&, const Mobil&);
;

ostream& operator<<(ostream& out, const Mobil& mobil)
out << mobil.print() << endl;
return out;



what is the problem?







c++ c++11






share|improve this question







New contributor




P. Mark is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




P. Mark is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




P. Mark is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked yesterday









P. Mark

81




81




New contributor




P. Mark is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





P. Mark is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






P. Mark is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







  • 2




    Problem is this line: out << mobil.print() << endl;. Your print() method doesn't return anything (is type of void), so it can't be send to ostream
    – Rhathin
    yesterday






  • 1




    @Rhathin that sounds like a perfect answer to me.
    – darune
    yesterday






  • 1




    @Rhathin Don't answer in the comments section, thanks.
    – Lightness Races in Orbit
    yesterday












  • 2




    Problem is this line: out << mobil.print() << endl;. Your print() method doesn't return anything (is type of void), so it can't be send to ostream
    – Rhathin
    yesterday






  • 1




    @Rhathin that sounds like a perfect answer to me.
    – darune
    yesterday






  • 1




    @Rhathin Don't answer in the comments section, thanks.
    – Lightness Races in Orbit
    yesterday







2




2




Problem is this line: out << mobil.print() << endl;. Your print() method doesn't return anything (is type of void), so it can't be send to ostream
– Rhathin
yesterday




Problem is this line: out << mobil.print() << endl;. Your print() method doesn't return anything (is type of void), so it can't be send to ostream
– Rhathin
yesterday




1




1




@Rhathin that sounds like a perfect answer to me.
– darune
yesterday




@Rhathin that sounds like a perfect answer to me.
– darune
yesterday




1




1




@Rhathin Don't answer in the comments section, thanks.
– Lightness Races in Orbit
yesterday




@Rhathin Don't answer in the comments section, thanks.
– Lightness Races in Orbit
yesterday












1 Answer
1






active

oldest

votes

















up vote
1
down vote



accepted










Problem is this line: out << mobil.print() << endl;. Your print() method doesn't return anything (is type of void), so it can't be send to ostream.



To solve this problem, your print() method should return whatever you want to printout in one of types supported by ostream which you can find in reference.






share|improve this answer
















  • 1




    Or it can take std::ostream& and do whatever it needs to on behalf of the operator<<, though this is arguably less idiomatic nowadays.
    – Lightness Races in Orbit
    yesterday










Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);






P. Mark is a new contributor. Be nice, and check out our Code of Conduct.









 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53224411%2ferror-no-match-for-operator-operand-types-are-stdostream-aka-stdbasi%23new-answer', 'question_page');

);

Post as a guest






























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
1
down vote



accepted










Problem is this line: out << mobil.print() << endl;. Your print() method doesn't return anything (is type of void), so it can't be send to ostream.



To solve this problem, your print() method should return whatever you want to printout in one of types supported by ostream which you can find in reference.






share|improve this answer
















  • 1




    Or it can take std::ostream& and do whatever it needs to on behalf of the operator<<, though this is arguably less idiomatic nowadays.
    – Lightness Races in Orbit
    yesterday














up vote
1
down vote



accepted










Problem is this line: out << mobil.print() << endl;. Your print() method doesn't return anything (is type of void), so it can't be send to ostream.



To solve this problem, your print() method should return whatever you want to printout in one of types supported by ostream which you can find in reference.






share|improve this answer
















  • 1




    Or it can take std::ostream& and do whatever it needs to on behalf of the operator<<, though this is arguably less idiomatic nowadays.
    – Lightness Races in Orbit
    yesterday












up vote
1
down vote



accepted







up vote
1
down vote



accepted






Problem is this line: out << mobil.print() << endl;. Your print() method doesn't return anything (is type of void), so it can't be send to ostream.



To solve this problem, your print() method should return whatever you want to printout in one of types supported by ostream which you can find in reference.






share|improve this answer












Problem is this line: out << mobil.print() << endl;. Your print() method doesn't return anything (is type of void), so it can't be send to ostream.



To solve this problem, your print() method should return whatever you want to printout in one of types supported by ostream which you can find in reference.







share|improve this answer












share|improve this answer



share|improve this answer










answered yesterday









Rhathin

487310




487310







  • 1




    Or it can take std::ostream& and do whatever it needs to on behalf of the operator<<, though this is arguably less idiomatic nowadays.
    – Lightness Races in Orbit
    yesterday












  • 1




    Or it can take std::ostream& and do whatever it needs to on behalf of the operator<<, though this is arguably less idiomatic nowadays.
    – Lightness Races in Orbit
    yesterday







1




1




Or it can take std::ostream& and do whatever it needs to on behalf of the operator<<, though this is arguably less idiomatic nowadays.
– Lightness Races in Orbit
yesterday




Or it can take std::ostream& and do whatever it needs to on behalf of the operator<<, though this is arguably less idiomatic nowadays.
– Lightness Races in Orbit
yesterday










P. Mark is a new contributor. Be nice, and check out our Code of Conduct.









 

draft saved


draft discarded


















P. Mark is a new contributor. Be nice, and check out our Code of Conduct.












P. Mark is a new contributor. Be nice, and check out our Code of Conduct.











P. Mark is a new contributor. Be nice, and check out our Code of Conduct.













 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53224411%2ferror-no-match-for-operator-operand-types-are-stdostream-aka-stdbasi%23new-answer', 'question_page');

);

Post as a guest














































































Popular posts from this blog

How to how show current date and time by default on contact form 7 in WordPress without taking input from user in datetimepicker

Syphilis

Darth Vader #20