C++-ban miért nem deríti ki magától a fordító, hogy mit kell includeolnia?
A kérdés amúgy nem arra vonatkozott, hogy a preprocesszor miért nem includeol mindent, mert az nyilvánvaló. Hanem hogy miért nem lehet valahogy kideríteni, hogy mit használok, és csak azt beincludeolni, és hogy ne a programozónak kelljen. Engem ugyan nem zavar, hogy nekem kell, csak érdekelt a kérdésre a válasz.
Asszem a g++ talán automatikusan includeolja a string header fájlt, ha std::stringet használok. Ha ott meg lehet ezt csinálni, akkor a többi header fájllal miért nem lehet?
Amúgy Javaban meg C#-ban ha jól tudom akkor az import meg a using az nem includeolás, csak névtérfeloldás? Ha igen, akkor ott miért nem kell includeolni?
Vegyük az std::stringet, mert ezt említetted. Te a stringre írhatsz saját header fájlt is. Így a fordító nem tudhatja melyiket használja :). Ha a fordító automatikusan beillesztené az "alapot" akkor hibás lenne a kódot ugyebár.
Azért említettem meg a preprocesszort, mert ez a fordítás első lépése. Tehát még ez előtt kéne beilleszteni őket. De az IDE beilleszti neked, ha nem egyediről van szó. Pl string esetébe aláhúzza a Visual Studio és szól, hogy -hé ez nincs includolva, szeretnéd, hogy beírjam? Rákattintasz az ikonra és megcsinálja.
" Ha ott meg lehet ezt csinálni, akkor a többi header fájllal miért nem lehet?"
Lehetni lehet, ez nyilvánvaló, de miért kellene?
Olvastam én itt olyat, hogy vki azt kifogásolta, hogy ha a fordító nyafog a lefelejtett pontosvessző miatt, akkor miért nem teszi mindjárt oda? (.OMG.)
Hát, kb. ez is ilyen dolog.
Az lehet, de előfordul, hogy ezzel megoldanál x problámát, -alapvetően inkább kényelmi funkció ez- de generálnál vele 5x másikat.
Ha nem használják, akkor befordul, de futni nem fog, tehát a kódméret nő egy kissé, viszont egyéb hátrányos következménye nem lesz.
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!