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

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

Войти
Регистрация
Восстановить пароль
 
 
Костяныч
15 / 15 / 0
Регистрация: 31.10.2010
Сообщений: 1,237
Записей в блоге: 2
#1

Поле mutable в структуре - C++

30.06.2015, 12:26. Просмотров 574. Ответов 20
Метки нет (Все метки)

Добрый день.
Есть структура
C++
1
2
3
4
5
6
struct NameStructure
{
  protected:
    mutable TDateTime Time;
.......
}
Эту структуру я объявил в другом классе и пытаюсь заполнить переменную Time. А мне выпадает ошибка: E2247 NameStructure::Time' is not accessible.
Подскажите пожалуйста, как ей присвоить значение?
Спасибо.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2015, 12:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поле mutable в структуре (C++):

Не заполнет поле в структуре - C++
Описал структуру, но она некорректно заполняется. А именно, пропускается поле при втором и последующим прохождении.Помогите, пожалуйста....

Обнулить поле ID в структуре - C++
Добрый вечер! Подскажите как обнулить поле ID в структуре? orderId - это порядковый номер, который присваиваетсяавтоматически по...

Поле size в структуре типа дерево - C++
Доброго времени суток. Вопрос, где лучше хранить поле содержащее размер структуры. Не хочется в каждом объекте заводить специальную...

const_cast mutable - C++
в чем разница? спасибо.

Const_cast и mutable - C++
В чем их отличие и когда их необходимо использовать (если не нарушена архитектура программы)?

Внутренняя работа mutable - C++
Привет. Хочу спросить у особо продвинутых, как работает ключевое слово mutable. Вот тут, например: #include <iostream> #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
30.06.2015, 15:18 #16
Ilot, эта выдержка - всего лишь пример конкретного случая, который не подтверждает слова:
Цитата Сообщение от Ilot Посмотреть сообщение
Притом, что эта переменная может использоваться подобно мъютексу.
Ты знаешь для чего существует ключевое слово mutable?
0
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
30.06.2015, 15:45 #17
Цитата Сообщение от castaway Посмотреть сообщение
Ты знаешь для чего существует ключевое слово mutable?
Нет. Просвяти.
0
DrOffset
7147 / 4288 / 966
Регистрация: 30.01.2014
Сообщений: 7,091
30.06.2015, 16:17 #18
Цитата Сообщение от Ilot Посмотреть сообщение
Нет.
Для организации изменяемого свойства в неизменяемом объекте.

Добавлено через 4 минуты
Ilot, в данном конкретном случае это проявляется следующим образом: функция empty() - const. Внутри нее нельзя менять состояние объекта. А вот mutable позволяет сделать исключение для этого. В empty мы работаем с объектом, как с неизменяемым. Но по логике работы, нам, тем не менее, нужно его изменить (захватить мютекс), вот тут mutable и пригодился.
0
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
30.06.2015, 16:40 #19
DrOffset, я просто шучу. Я понимаю для чего необходим mutable.
Просто вопрос castaway'я звучит примерно как: "Ты знаешь о чем говоришь?" . Вот я и смутился.... хотя есть еще один способ применения ключевого слова mutable. А именно при передаче переменных в блямба функцию. Потому как без ключевого слова mutable они передаются по константной ссылке (при захвате внешних переменных).
0
Nick Alte
Эксперт С++
1637 / 1009 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
30.06.2015, 16:46 #20
Насколько я понимаю, mutable вводили для обозначения вспомогательных полей, которые логически не являются частью состояния объектов. Например, у нас есть какой-то контейнер с поиском, который кеширует результат последнего запроса на случай, если он повторится. Логически чтение из такого контейнера будет const-операцией, а в суровой действительности надо будет изменять lastFound. Вот тут-то мышка mutable и пригодится.
1
castaway
Эксперт С++
4884 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
30.06.2015, 19:11 #21
Цитата Сообщение от Ilot Посмотреть сообщение
Просто вопрос castaway'я звучит примерно как: "Ты знаешь о чем говоришь?"
Он именно так и звучал. Лично для меня всё ещё остаётся загадкой как
Цитата Сообщение от Ilot Посмотреть сообщение
эта переменная может использоваться подобно мъютексу.
Тут не я просвещять должен.
Может быть я чего то не знаю.. Буду благодарен если пояснишь. Лучше в виде примера.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2015, 19:11
Привет! Вот еще темы с ответами:

Смысл спецификатора mutable - C++
В этом тема и заключается %-)

Изменить const с помощью mutable - C++
Привет всем, у меня 1 вот такой вопрос, почему в етом коде "а" - не изменяется? у меня же "b" -mutable? помогите пожалуйста... ...

Назначение mutable в лямбда-функции - C++
Прокомментируйте, чтоб не выдумывать. Спецификатор mutable определяет по списку захвата локальные статические переменные? int main() {...

Несколько mutable bool в классе - C++
Приветствую. Столкнулся с необъяснимой для меня проблемой. Суть: Есть класс, пусть будет: class test { mutable bool flag1,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.06.2015, 19:11
Ответ Создать тему
Опции темы

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