Rückgabe von Booleans

jojomp

Mitglied
Hallo zusammen,

ich habe ein Problem mit booleans in Klassen. Obwohl ich diverse Booleans im Konstruktor auf false setze, werden sie bei Abfrage als true bzw. 0 ausgegeben. Hier mal das gekürzte Headerfile:
Code:
class kaertchen {
	public:
		kaertchen();
                void setValue(int value);
		bool istaufgedeckt();
		void setMixed(bool yesno);
                bool getMixed();
	private:
		bool aufgedeckt;
		int value;
		bool gemixt;
		bool ispair;
};
Und hier die Funktionen:
Code:
kaertchen::kaertchen() {
	printf("kaertchen::kaertchen()\n");
	this->aufgedeckt = false;
	setValue(0);
	setMixed(false);
	this->ispair = false;
}
bool kaertchen::istaufgedeckt() {
        return this->aufgedeckt;
}
void kaertchen::setMixed(bool yesno) {
	gemixt = yesno;
}
bool kaertchen::getMixed() {
       return gemixt;
}
void setValue(int value) {
       this->value = value;
}

Wenn ich das ganze jetzt von außen abfrage:

Code:
kaertchen karte;
cout << "Karte ist aufgedeckt: " << karte.istaufgedeckt() << endl;
cout << "Karte ist gemixt: " << karte.getMixed() << endl;
kommt:

kaertchen::kaertchen()
Karte ist aufgedeckt: 0
Karte ist gemixt: 0

Ich benutze den g++ 4.2.4

Hat da jemand 'ne Idee was da falsch ist?

Gruß
jojomp
 
Hi.
Code:
kaertchen karte;
cout << "Karte ist aufgedeckt: " << karte.istaufgedeckt() << endl;
cout << "Karte ist gemixt: " << karte.getMixed() << endl;
kommt:

kaertchen::kaertchen()
Karte ist aufgedeckt: 0
Karte ist gemixt: 0

Ich benutze den g++ 4.2.4

Hat da jemand 'ne Idee was da falsch ist?
Ja. Deine Idee von true und false. 0 == false, alles andere ist true.

C++:
cout << "Karte ist aufgedeckt: " << boolalpha << karte.istaufgedeckt() << endl;
Gruß
 
Auweia...und ich war der Meinung das wär genau umgekehrt...hmm vielen Dank:)
Edit:
die bash z.B. sieht das anders:

$ true
$ echo $?
0
$ false
$ echo $?
1

Wahrscheinlich kommt das daher...

Gruß jojomp
 
Zuletzt bearbeitet:
Zurück