Большая часть материала по теме объяснена в других статьях. Главная мысль темы: создавайте программы так, как хотели бы создать самолёт: с минимальным количеством кнопок, которые нужно нажимать, чтобы ваш самолёт летел.
Пример на случай перекрытия имен
#include <iostream>
int var = 100; // Глобальная переменная
void exampleFunction() {
int var = 200; // Локальная переменная с тем же именем
std::cout << "Local variable: " << var << std::endl;
std::cout << "Global variable accessed using scope resolution: " << ::var << std::endl;
}
int main() {
exampleFunction();
return 0;
}