Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rugga
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 75
#1

Глобальные переменные - C++

07.04.2015, 16:06. Просмотров 369. Ответов 4
Метки нет (Все метки)

Я правильно понимаю: "в c++ использовать глобальные переменные не безопасно, т. к. др. программы могут случайно поменять значение этих переменных"?
Если обернуть глобальные переменный в класс (с private) - это будет безопасно? Например так:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
class source {
  private:
     static int a;
     static int b;
   public:
     static int getSymm(int a, int b) {
        return a+b;
     }
}
int main() {
   int x = source::getSymm(5, 3);
}
Как еще можно обезопасить глобальные переменные?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2015, 16:06
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Глобальные переменные (C++):

Глобальные и статические глобальные переменные - C++
Скажите, чем отличаются глобальные переменные от статических глобальных переменных?

Глобальные переменные - C++
Я хочу использовать глобальную переменную, определённую в main, в своих классах. Листинг)) globals.h #ifndef GLOBASL_H #define...

Глобальные переменные - C++
Здравствуйте . Разбираю пример с книги на использование глобальных переменных . Там был такой пример: #include "stdafx.h" #include...

глобальные переменные - C++
Пробовал объявить глобальные переменные следующим образом: в заголовочном файле head.h #ifndef DF_H #define DF_H //объявления...

Глобальные переменные - C++
Здравствуйте! Возникла видимо классическая проблема, но перечитав кучу сайтов так ее и не решил. Пишу в VS2005, имеются 2 срр файла...

Глобальные переменные - C++
Как в C++ завести глобальную (общую для функции и самой программы) переменную?

4
HighPredator
5645 / 1962 / 373
Регистрация: 10.12.2010
Сообщений: 5,687
Записей в блоге: 3
07.04.2015, 16:08 #2
Цитата Сообщение от rugga Посмотреть сообщение
др. программы могут случайно поменять значение этих переменных
Это где вы такое вычитали?
0
zss
Модератор
Эксперт С++
6928 / 6490 / 2182
Регистрация: 18.12.2011
Сообщений: 17,105
Завершенные тесты: 1
07.04.2015, 16:11 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
namespace source 
{
     int a;
     int b;
     int getSymm(int x, int y) 
     {
        return x+y;
     }
}
int main() 
{
   source::a=0;
   source::b=source::a+5;
   int x = source::getSymm(5, 3);
}
0
rugga
0 / 0 / 0
Регистрация: 10.02.2014
Сообщений: 75
07.04.2015, 16:37  [ТС] #4
Это где вы такое вычитали?
Когда читал про указатели и адреса памяти.

int b = 9;
int* a;

Точно не помню, но было написано типа такого:
Если писать так:
a = 99; // т. е. в переменную указатель вручную прописываем адрес ячейки ОЗУ
*a = 7; //здесь меняем значение, которое хранится в адресе 99
То рискуем изменить значение переменной, которую возможно использует др. программа.

И там написано было, типа так никогда не делайте, нужно так:
a = &b; //берем адрес ячейки, которую использует наша програмка

А что, одна программа никак не может изменить значение в ОЗУ, которое использует др. программа?
0
Renji
2118 / 1477 / 348
Регистрация: 05.06.2014
Сообщений: 4,306
07.04.2015, 16:55 #5
Цитата Сообщение от rugga Посмотреть сообщение
Я правильно понимаю: "в c++ использовать глобальные переменные не безопасно, т. к. др. программы могут случайно поменять значение этих переменных"?
1) Программы Потоки.
2) Синхронизация спасет отца русской демократии. Хотя, конечно, если юзаете многопоточность, лучше просто избегать разделяемых потоками данных.
Цитата Сообщение от rugga Посмотреть сообщение
А что, одна программа никак не может изменить значение в ОЗУ, которое использует др. программа?
Может, но только после определенных плясок с бубном. Но если программист специально плясал с бубном, видимо, он и хотел чтоб одна программа видела данные другой.
0
07.04.2015, 16:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2015, 16:55
Привет! Вот еще темы с ответами:

глобальные переменные - C++
здравствуйте, я только начал изучать C++, в книге Штидта Г. есть такой код, он выводит: count + число, помогите понять принцип работы этого...

Глобальные переменные - C++
Доброго времени суток всем. У меня следующая проблема: объявляю глобально переменную типа структуры dealer* root;. Далее в коде...

Глобальные переменные - C++
Подскажите пожалуйста, почему данные в глобальной переменной перезаписываются, а не плюсуются? Пример: int peremennaya; void...

Глобальные статические переменные - C++
Ребят, может мне кто-нибудь объяснить назначение глобальных статических переменных? Литература (в частности Шилдт) говорит о том, что к...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru