Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
taras atavin
4204 / 1765 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
#1

Доступ к переменной только из двух функций. Возможно ли это?

17.03.2014, 17:33. Просмотров 805. Ответов 7
Метки нет (Все метки)

Две функции, не члены класса, одна из них должна писать в переменную, другая эту переменную читать и больше ни где эта переменная должна быть не доступна. Инфа должна в этой переменной сохраняться между вызовами второй функции.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2014, 17:33
Ответы с готовыми решениями:

Доступ к данным в *.mdb посредством OLE DB -- это возможно?
Почти две недели бьюсь над этой проблемой. Перерыл весь инет, книжку по OLE DB...

Нужно ли синхронизировать доступ к переменной из двух потоков?
Допустим есть два потока: основной и вторичный. 1. И допустим есть...

Получить доступ к переменной класса при наличии такого же имени переменной в функции
Например, есть приватная переменная clientName в классе. Также есть точно такая...

Доступ к mySQL возможен только через Shell доступ. Что это значит ?
Доступ к mySQL возможен только через Shell доступ. Что это значит ? На меня...

Доступ к mySQL возможен только через Shell доступ. Что это значит ?
навеяло отсюда http://www.cyberforum.ru/php-beginners/thread462521.html не...

7
kupnu4
26 / 26 / 15
Регистрация: 03.05.2013
Сообщений: 71
17.03.2014, 18:14 #2
как вариант может создать вокруг этих функций и этой переменной пространство имен под тип:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
namespace to_a_access
{
    int a;
    void f()
    {
        //тело f()
    }
 
    void g()
    {
        //тело g()
    }
 
}
Добавлено через 7 минут
ну и после namespace'а можно добавить:
C++
1
2
using to_a_access::f;//к f и g можно будет обращаться без указания пространства имен...
using to_a_access::g;//..., а к "а" - нет
0
taras atavin
4204 / 1765 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
17.03.2014, 18:14  [ТС] #3
А без неймспейсов? Да, кстати, вторая функция должна и читать переменную, и писать.
0
Croessmah
++Ͻ
14535 / 8296 / 1558
Регистрация: 27.09.2012
Сообщений: 20,359
Записей в блоге: 3
Завершенные тесты: 1
17.03.2014, 18:18 #4
1.cpp
C++
1
2
3
4
5
6
7
8
9
10
namespace { 
   int x ; 
}
 
//static int x ; // если namespace не устраивает
 
void first () {
}
void second () {
}
1.h
C++
1
2
void first () ;
void second() ;
0
taras atavin
4204 / 1765 / 211
Регистрация: 24.11.2009
Сообщений: 27,565
17.03.2014, 18:20  [ТС] #5
Кстати, что мешает написать
C++
1
to_a_access::a
?

Добавлено через 1 минуту
Croessmah, вынести в отдельный модуль и экспортировать только функции?
0
Croessmah
++Ͻ
14535 / 8296 / 1558
Регистрация: 27.09.2012
Сообщений: 20,359
Записей в блоге: 3
Завершенные тесты: 1
17.03.2014, 18:20 #6
Лучший ответ Сообщение было отмечено taras atavin как решение

Решение

Цитата Сообщение от taras atavin Посмотреть сообщение
вынести в отдельный модуль и экспортировать только функции?
ну да. Переменная будет недоступна из других модулей
0
kupnu4
26 / 26 / 15
Регистрация: 03.05.2013
Сообщений: 71
17.03.2014, 18:21 #7
а чем вам класс или структура не угодили? у них есть приятные модификаторы доступа. глобальные переменные вы тоже забраковали (но здесь я пожалуй с вами солидарен). ну ничего другого в голову не идет, к сожалению.
0
0x10
2571 / 1751 / 288
Регистрация: 24.11.2012
Сообщений: 4,377
17.03.2014, 18:32 #8
В дополнение к ответу Croessmah, вместо анонимного неймспейса можно переменную сделать static. Фактически это несколько другое, но эффект тот же - недоступность из модулей.
0
17.03.2014, 18:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2014, 18:32

Перегрузка встроенных функций PHP.Возможно ли это
Возможно ли в PHP произвести перенапровление встроенной функции -тоесть...

Установка двух ОС на одной машине. Это возможно?
Здравствуйте! Недавно купил новый комп с Win7-64. Но оказалось, что купленный...

Доступ к одной переменной двух классов
Здавствуйте. Есть два класса. Первый создаёт данные. Второй эти данные...


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

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

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