üzenetek

hozzászólások


SLD
(tag)

Nem, persze hogy nem. Ez esetben számként kezeli őket és persze, hogy 1 nem lesz egyenlő 23-al. Én erre gondolok:

#include <iostream>
using namespace std;

int main() {
bool b = 600000000;
cout << b << endl;
cout << sizeof(b) << " bájt" << endl;
return 0;
}

Tehát, alapértékként megadhatunk neki akár ennyit is, de ezt a compiler szépen konvertálja 1-re vagy 0-ra. Jelen esetben 1-re.
De pl. vehetjük a Te példádat is, ha később a b-nek (nálad L-nek) 23-at adsz értékként és kiíratod, akkor az újra 1 lesz, mert megtörtént a típusátalakítás a compiler által. Sőt ha már nagyon igaz-hamis vizsgálatot szeretnél akkor lehet így is csinálni:

#include <iostream>
using namespace std;

int main() {
bool b = 600000000;
cout << b << endl;
b = 23;
if(b) {
cout << b << endl;
}
cout << sizeof(b) << " bájt" << endl;
return 0;
}

Szerk: BEGIN

Sőt csinálhatjuk ezt is, hogy még szemléletesebb legyen (persze ez nem a szép módja a típuskonverziónak, de példának jó):

#include <iostream>
using namespace std;

int main() {
bool b = 600000000;
cout << b << endl;
b = 23;
if(b == (bool) 569) {
cout << b << endl;
}
cout << sizeof(b) << " bájt" << endl;
return 0;
}

Szerk:END

Remélem így már érthető mire akartam kilyukadni.

Azt meg végképp nem értem miért Te és miért nem Benmartin kérdez ilyeneket, hisz ő írt hülyeséget... no mindegy.

#22 :

Aki tud németül, annak szintén jó választás lehet a: C++ von A biz Z, Jürgen Wolf-tól. Ellentétben a magyar kiadásokkal ez most éppen 2009-es és nem a 2001-es fordításának 2006-os kiadása...

#21 isti84 :

Pedig akár szólhatott volna Neki is...

[ Szerkesztve ]

üzenetek