Seriál o programovaní v programovacom jazyku C++. V dnešnom, už piatom pokračovaní si napíšeme náš prvý skutočný program a naučíme sa ako získavať dáta zo štandartného vstupu a ako dáta vypisovať a zoznámime sa s hlavičkovými súbormi.
// main.h
int i;
// main.cpp
#include "main.h"
int main() {
i = 10;
return 0;
}
Príkazom #include "main.h" sme spôsobili, že obsah súboru main.h bude
sprístupnený aj pre súbor main.cpp. Preto môžeme pracovať s premennou i,
ktorú sme deklarovali v súbore main.h aj napriek tomu, že v súbore main.cpp
akoby neexistovala.
// main2.cpp
#include "main.h"
void func() {
i = 10;
}
Tu by už nastal problém, pretože by sme globálnu premennú i akoby deklarovali
dva krát (v súbore main.cpp a v súbore main2.cpp). Situáciu vyriešime pomocou
kľúčového slova extern.
// main.h
extern int i;
// main.cpp
#include "main.h"
int i;
...
Keď premennú "i" zapíšeme v súbore main.h ako externú, v podstate tým kompilátoru
povieme, že premenné "i" deklarujeme v nejakom inom súbore, pričom súbory,
ktoré budú includovať main.h, budú môcť premennú i využívať. Ale ako som už
napísal, musíme je v niektorom zo súborom deklarovať, resp. definovať.
// main.cpp
#include "main.h"
int i;
...
Teraz už bude všetko v poriadku a globálnu premennú "i" budeme môcť použiť v
každom súbore, ktorý bude hlavičkový súbor main.h inkludovať.
#include <iostream>
int main() {
std::cout << "Ďakujeme ti za tento seriál, ribi!" << std::endl;
return 0;
}
Všimnite si, že som napísal std::cout a std::endl namiesto cout a endl. Urobil
som tak preto, lebo cout a endl sú súčasťou tzv. namespace. O
tom ale až niekedy neskôr.
int i;
namespace name{
int i;
};
...
i = 0; // globálna premenná i
name::i = 0; // namespace
Keď sa vám v určitej časti kódu nebude chcieť vypisovať name::i, tak jednoducho
môžete napísať príkaz using namespace name. Ten spôsobí, že vám
bude stačiť napísať len "i" (nie name::i) a kompilátor automaticky pochopí, že
chcete pristupovať k namespace-u.
#include <iostream>
using namespace std;
int main() {
cout << "Ďakujeme ti za tento seriál, ó, veľký ribi!" << endl;
return 0;
}
#include <iostream>
using namespace std;
int main() {
char c;
int i;
cin >> c; // načíta sa hodnota typu char
cin >> i; // načíta sa hodnota typu int
return 0;
}