Kezdőoldal » Számítástechnika » Programozás » Miért van az, hogy egyes C++...

Miért van az, hogy egyes C++ fordítókkal ha std::stringet használok, nem kell includeolni a string header fájlt?

Figyelt kérdés
Pedig elvileg úgy lenne szabványos.

2020. dec. 10. 10:43
 1/2 anonim ***** válasza:
100%

Néhány fordítónál nem szükséges, mivel maguktól tudják kezelni, de ettől függetlenül szükséges lehet, hiszen ha pl. egy másik programozónak adod a kódot, és ő olyan fordítót használ, aminél include-olni kell a string-et, akkor nála nem fog rendesen futni a program (tehát neki kell include-olni a string állományt).

[link]


"Viszont ne felejtsük el includeolni a string header fájlt:


#include <string>

Noha előfordulhat, hogy bizonyos fordítókat használva ennek hiánya nélkül is ugyanúgy tudunk std::stringet használni, mégis érdemes szerepelnie ennek a preprocesszor direktívának azon forrásfájlok elején, amikben std::stringet használunk."

2020. dec. 10. 12:00
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:
70%

Azért ez a "maguktól tudják kezelni", ez egy kissé túlzás. Olyan fordítót még nem láttam (se gcc, se clang, se MSVC), ahol mindenféle include nélkül lehetne használni az std::string típust.


A magyarázat inkább abban rejlik, hogy ha behúzol egy másik header fájlt (pl <iostream> ), akkor lehetséges, hogy azokon belül include-olva van maga a <string> header, és így külön már nem szükséges neked include-olni. Természetesen ha egy másik platformon fordítasz, vagy az STL-nek egy másik implementációját használod, akkor ott ez nem garantált, hogy működni fog.

2020. dec. 10. 15:56
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!