Momentálne sa učím C ++ a zistil som, že existujú minimálne dva spôsoby použitia premenných definovaných v iných súboroch. Nerozumiem však, kedy vlastne ktorú metódu použiť.
Napríklad: Mám zápis do „h1.h“:
extern int k;
a „a2.cpp“ píše:
#include "a2.h"
#include "h1.h"
int k = 42;
int k2 = 43;
Potom môžem odkazovať na k v mojom main.cpp s:
#include "main.h"
#include "a1.h"
#include "h1.h"
#include <iostream>
Main::Main() {}
int main() {
std::cout << k << std::endl;
}
Ak však chcem použiť k2 v main.cpp, mohol by som jednoducho napísať metódu getter / setter, čím by som sa vyhýbal použitiu extern v bežnom zahrnutom hlavičkovom súbore.
Chcel by som vedieť: Aké sú ďalšie spôsoby prístupu k premenným z iných súborov? Kedy ktorú metódu použijete (a prečo)?
odpovede:
0 pre odpoveď č. 1Vystavujete k
ako funkcia, alebo vôbec, nie ako premenná.
"h1.h":
int k();
void k2(int &);
"h1.cpp":
int k() { return 42; }
void k2(int & value) { value = 43; }
„main.cpp“
#include "h1.h"
#include <iostream>
int main () {
std::cout << k() << std::endl;
int any_name;
k2(any_name);
std::cout << any_name << std::endl;
}