Форум программистов, компьютерный форум CyberForum.ru

Сосчитать количество изменений переменной - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Протабулировать функцию http://www.cyberforum.ru/cpp-beginners/thread1104304.html
2) Протабулировать функцию Y = F (x), аргумент которой пробегает множество элементов одномерного массива A, предварительно вычислив значение параметра S. S + cos (x) * cos (x), где S - сумма положительных элементов массива A. Массив A 0, 2,-π, (это число пи, которое отрицательное) 1, -2 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
C++ Какой элемент массива стоит ближе к началу - крупнейший или маленький? 1) Определить, какой элемент заданного массива A (a , a , ... a ) стоит ближе к началу - крупнейший или маленький? =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= http://www.cyberforum.ru/cpp-beginners/thread1104301.html
C++ А можно циклами по указателям перебрать массив массивов вложенным циклом по первому индексу, а внешним по второму?
А можно циклами по указателям перебрать массив массивов вложенным циклом по первому индексу, а внешним по второму?
C++ Получить квадратную матрицу из двух других
Здравствуйте, уважаемые программисты. Прошу у вас помощи с программой: Методические указания: 1. Ввод и вывод массива, а так же операции над матрицами оформить в виде функции, не возвращающих значение 2. При вводе, выводе и обработки матриц использовать указатели на массивы Задание Даны квадратные матрицы A,Bпорядка n. Получить матрицу C=Aт-Bт*C, где Aт и Bт - транспонированные матрицы
C++ Class и char http://www.cyberforum.ru/cpp-beginners/thread1104288.html
Помогите разобраться. Вот есть char name. Если вывожу Cow nam("Chebyrawka"); на экран с помощью функции ShowCow(), то выходят разные символы. Если же в private написать char name, то всё работает. Но передомной стоит условие, чтоб было именно char name. Это условие выполнимо? Возможно это делается с помощью new, но у меня не получается. class Cow{ private: char name; ...............
C++ Рекурсивный перебор всех вложенных поддиректорий и файлов Добрый день, хочу попрактиковаться на C++ после теории. Нашел для себя интересный проект. Задача: Необходимо реализовать консольное приложение, которое рекурсивно перебирает все папки и файлы от текущего каталога, и выводит информацию о папках и файлах на экран. Это команда cd командной строки Windows. Программа запускается с 2 параметрами первый это путь корневого каталога, от которого... подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6237 / 2966 / 289
Регистрация: 04.12.2011
Сообщений: 7,921
Записей в блоге: 3
24.02.2014, 17:43     Сосчитать количество изменений переменной
SkyLu, переменную кто может модифицировать (если об одно-поточном доступе говорить)? Если только одна функция (не надёжно, ведь нельзя быть уверенным, что в дальнейшем ещё как-то не получится), то можно в ней создать статический счетчик (возвращать по ссылке, допустим.) или использовать глобальную переменную. Но так этот счетчик не защищен от модификации.
Если возможно, то доступ к переменной лучше бы закрыть в специальном классе (get/set) и в set увеличивать статический счётчик, - в свою очередь доступный только для чтения из-вне, то есть имеющий public: get_count и не имеющий сеттера. Хотя можно и иначе.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
 
using std::cin;
using std::cout;
using std::endl;
 
class Counted_access_value{
int value;
static int count_access;
 
public:
    Counted_access_value( int a) :value(a){}
 
    int get_val(){
return value;
    }
    void set_val(int to_set){
        if(to_set != value){
value=to_set;
count_access++;
        }
 
    }
    static int get_count(){ return count_access;}
};
 
int Counted_access_value::count_access = 0;
 
int main(){
Counted_access_value obj(5);
obj.set_val(5);
cout << obj.get_count()<<endl;//0 - 5=5 и модификации нет
obj.set_val(6);
cout << obj.get_count();//1 значение изменилось
cout<<endl<<endl<<endl;
system("pause");
return 0;
}

Не по теме:

Цитата Сообщение от Тамика Посмотреть сообщение
Ладно, уходу БП свой возвращать к жизни... Ну вас. :С
Тамика, на Тесла надейся, а верблюда отключать не забывай (древне шумерское))

 
Текущее время: 23:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru