Hogyan lehet C++-ba konstanst és változót összehasonlítani?
C++-ban szeretnék összehasonlítani egy integer típusú változót egy integer típusú konstanssal. PHP-ben ezt a módszert eléggé sokat használjuk, de itt a Code::Blocks hibát ír ki:
ISO C++ forbids comparison between pointer and integer [-fpermissive]|
Mi lehet a probléma, hogyan tudnám elvégezni az összehasonlítást?
Ja, a programomat feltöltöttem ide: [link]
Nem tűnt fel, hogy még kb 8 másik hibát is jelzett?
A fordító rendszerint nem áll meg az első hibánál, hanem tovább elemzi a forráskódot, viszont a korábbi hibák befolyásolhatják az elemzés további részét, ezért olyan hibákat jelezhet, amiknek nincs jelentősége.
Jelen esetben rosszul hivatkozol a konstansokra. A :: arra való, hogy egy osztály statikus tagjaira hivatkozzál. Php-ban a konstans kifejezések automatikusan statikusak, C++-ban viszont csak az statikus, amik explicit módon statikusnak jelzel. Tehát az általad deklarált konstansok nem statikusak, hanem objektumszintűek, tehát helyesen úgy hivatkozhatsz rá, hogy this->FUN1 (sőt, elég csak az, hogy FUN1, mert az objektum scope-ját alapból is látja).
A hiba abból fakad, hogy a this::FUN1 kifejezést a fordító (hiba jelzése után) pointer típusként értelmezte, és innentől már nem két integert, hanem egy integert és egy pointert hasonlítottál össze, amit újabb hibával jelzett.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!