error: no match for ‘operator<<’ (operand types are ‘std::ostream {aka std::basic_ostream}’ and...
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
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
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
Nov 9 at 11:06
1
@Rhathin that sounds like a perfect answer to me.
– darune
Nov 9 at 11:13
1
@Rhathin Don't answer in the comments section, thanks.
– Lightness Races in Orbit
Nov 9 at 11:13
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
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
asked Nov 9 at 10:58
P. Mark
61
61
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
Nov 9 at 11:06
1
@Rhathin that sounds like a perfect answer to me.
– darune
Nov 9 at 11:13
1
@Rhathin Don't answer in the comments section, thanks.
– Lightness Races in Orbit
Nov 9 at 11:13
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
Nov 9 at 11:06
1
@Rhathin that sounds like a perfect answer to me.
– darune
Nov 9 at 11:13
1
@Rhathin Don't answer in the comments section, thanks.
– Lightness Races in Orbit
Nov 9 at 11:13
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
Nov 9 at 11:06
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
Nov 9 at 11:06
1
1
@Rhathin that sounds like a perfect answer to me.
– darune
Nov 9 at 11:13
@Rhathin that sounds like a perfect answer to me.
– darune
Nov 9 at 11:13
1
1
@Rhathin Don't answer in the comments section, thanks.
– Lightness Races in Orbit
Nov 9 at 11:13
@Rhathin Don't answer in the comments section, thanks.
– Lightness Races in Orbit
Nov 9 at 11:13
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
Nov 9 at 11:18
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
Nov 9 at 11:18
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
Nov 9 at 11:18
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 Nov 9 at 11:16
Rhathin
5391313
5391313
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
Nov 9 at 11:18
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
Nov 9 at 11:18
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
Nov 9 at 11:18
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
Nov 9 at 11:18
add a comment |
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
Required, but never shown
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
Required, but never shown
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
Required, but never shown
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
Required, but never shown
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
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
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
Nov 9 at 11:06
1
@Rhathin that sounds like a perfect answer to me.
– darune
Nov 9 at 11:13
1
@Rhathin Don't answer in the comments section, thanks.
– Lightness Races in Orbit
Nov 9 at 11:13