Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] #include <...> a program w kilku plikach

Ostatnio zmodyfikowano 2012-07-28 12:14
Autor Wiadomość
Unlimited
Temat założony przez niniejszego użytkownika
[C++] #include <...> a program w kilku plikach
» 2012-07-28 11:35:42
Witam ponownie. Nurtuje mnie pewne zastosowanie #include <jakaś tam biblioteka> w plikach dołączanych do głównego.
Krótko: mam plik główny main.cpp i w nim powiedzmy na początku programu #include <string> i using namespace std; następnie pod nimi dołączam plik #include "jakiśtam.hpp" i w nim jak zadeklaruje sobie coś w stylu string tekst; to wywala błąd o braku bibliotek. Dlaczego? Przecież dodałem te biblioteki w głównym pliku main.cpp więc dlaczego się wydziera że ich nie ma? Po co dawać je kilka razy? Wtedy się chyba powiększa niepotrzebnie objętość pliku...

W kursie bodajże było żeby wystrzegać się dołączania kilka razy tego samego pliku .hpp i żeby tak się nie stało stosować
#ifndef jakiśtamplik_hpp
#define jakiśtamplik_hpp
...
...
...
#endif

Jak to się ma do bibliotek?
P-61289
Badman
» 2012-07-28 11:57:23
Ponieważ to co znajduje się w pliku jakiśtam.hpp kompletnie nic nie wie o funkcjach, czy typach innych niż sztandarowe języka C/C++.
Includy, które znajdują się w main.cpp widziane są tylko i wyłącznie (zakres ważności) w tym pliku. Chcąc korzystać z funkcji, czy nowych typów jakieś biblioteki w pliku jakiśtam.hpp muszisz "includować" jej nagłówki.
P-61292
Unlimited
Temat założony przez niniejszego użytkownika
» 2012-07-28 12:11:51
Czyli w każdym pliku muszę pisać np using namespace std; gdy nie chcę dodawać przedrostka std:: ? Nom dzięki
P-61293
SeaMonster131
» 2012-07-28 12:14:18
Tak. Chyba że dołączysz (poprzez include) jakiś plik, który zawiera już te "using namespace std".
P-61294
« 1 »
  Strona 1 z 1