Уведомление для модификации объекта?

0

У меня такой простой класс

class MyClass
{
public:
    MyClass(){}
    ~MyClass(){}

    int a;
    int b;
    int c;
};

В моем приложении я просто создаю объект этого класса. И я пытаюсь использовать объект класса в моем методе. Теперь я хочу, чтобы какой-то механизм уведомления был размещен так, что если по ошибке кто-то пытается изменить этот объект, мое приложение получит уведомление, и я мог бы принять решение по этому вопросу.

Есть ли способ реализовать этот механизм.

У меня есть противопоставление, что все мои данные должны быть общедоступными.

  • 0
    Это до класса. Если это не должно быть изменено, не подвергайте ничему, что может изменить это.
  • 0
    @chris Я использую в своем приложении boost multiindex, и для этого я должен сделать все элементы данных публичными.
Показать ещё 8 комментариев
Теги:

1 ответ

0

Если вы хотите проверить, что переменные не были изменены, вам нужно будет ввести контрольную сумму. Каждый раз, когда имеется контролируемая запись переменных, контрольная сумма должна быть пересчитана.

Периодически вычисляйте контрольную сумму переменных-членов и сравнивайте с хранимой контрольной суммой.

Контрольная сумма может быть добавкой, xor, CRC, md5 или SHA-1, чтобы назвать несколько.

Другой вариант - сохранить теневую или зеркальную копию. Управляемая функция записи скопирует значения в тень после операции записи.

Моя рекомендация - изменить привилегию доступа членов и посмотреть, какие взрывы. Это функция, которая должна быть изменена для использования функции "Свойства".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню