C++-ban hogyan lehet belefutni a most vexing parse hibába?
Ugyebár a kerek zárójeles inicializáláshoz kapcsolódik a hiba, csak nem tudom, hogy alaptípusú változók esetén is jelentkezik-e, vagy csak objektumok esetén, illetve hogy egy bizonyos szabványverziótól kezdve megoldott probléma-e, csak mert nálam hiba nélkül fut például ez:
int valami(0);
std::cout << valami;
Illetve a wikin feltüntetett példa sem dob hibát:
Tudtok esetleg valamit erről? Nyilván az a szándékom, hogy ne forduljon a progi, amit írok, csak kíváncsi vagyok, hogy mégis milyen helyzetekben okoz ez hibát, mire kell figyelni.
Pdig amit a wikiben leírtak az bizony fordítási hibát okoz. A hibajelenség lényege, hogy a C++ esetében ami függvénydeklarációnak néz ki, azt annak is kell vennie. Így pl a Wikis példa esetében a
TimeKeeper time_keeper(Timer());
úgy kerül értelmezésre, hogy deklarálsz egy time_keeper nevű, TimeKeeper visszatérésű függvényt, amelynek egy Timer visszatérésű, névtelen, paraméter nélküli függvény pointer az egyetlen paramétere.
Szóval a válasz nagyvonalakban az, hogy akkor van most vexing hiba, ha a változó definiálásod megfeleltethető valamilyen függvénydeklarációnak.
Példának okáért ez is egy most vexing hibát okoz:
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!