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?
c++ c++11
New contributor
add a comment |
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?
c++ c++11
New contributor
2
Problem is this line:out << mobil.print() << endl;
. Yourprint()
method doesn't return anything (is type ofvoid
), so it can't be send toostream
– 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
add a comment |
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?
c++ c++11
New contributor
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
c++ c++11
New contributor
New contributor
New contributor
asked yesterday
P. Mark
81
81
New contributor
New contributor
2
Problem is this line:out << mobil.print() << endl;
. Yourprint()
method doesn't return anything (is type ofvoid
), so it can't be send toostream
– 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
add a comment |
2
Problem is this line:out << mobil.print() << endl;
. Yourprint()
method doesn't return anything (is type ofvoid
), so it can't be send toostream
– 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
add a comment |
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.
1
Or it can takestd::ostream&
and do whatever it needs to on behalf of theoperator<<
, though this is arguably less idiomatic nowadays.
– Lightness Races in Orbit
yesterday
add a comment |
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.
1
Or it can takestd::ostream&
and do whatever it needs to on behalf of theoperator<<
, though this is arguably less idiomatic nowadays.
– Lightness Races in Orbit
yesterday
add a comment |
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.
1
Or it can takestd::ostream&
and do whatever it needs to on behalf of theoperator<<
, though this is arguably less idiomatic nowadays.
– Lightness Races in Orbit
yesterday
add a comment |
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.
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.
answered yesterday
Rhathin
487310
487310
1
Or it can takestd::ostream&
and do whatever it needs to on behalf of theoperator<<
, though this is arguably less idiomatic nowadays.
– Lightness Races in Orbit
yesterday
add a comment |
1
Or it can takestd::ostream&
and do whatever it needs to on behalf of theoperator<<
, 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
add a comment |
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.
P. Mark is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
2
Problem is this line:
out << mobil.print() << endl;
. Yourprint()
method doesn't return anything (is type ofvoid
), so it can't be send toostream
– 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