/ / Kedy použijete ktorú metódu na získanie premenných z iného súboru? - c ++, premenné, referencie

Kedy použijete metódu na získanie premenných z iného súboru? - c ++, premenné, odkaz

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ď č. 1

Vystavujete 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;
}