Большая часть материала по теме объяснена в других статьях. Главная мысль темы: создавайте программы так, как хотели бы создать самолёт: с минимальным количеством кнопок, которые нужно нажимать, чтобы ваш самолёт летел.

Пример на случай перекрытия имен

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