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

Запретить редактирование переменной внутри класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Составить функцию построения строки символов являющейся записью заданного действительного числа http://www.cyberforum.ru/cpp-beginners/thread1190799.html
составить функцию построения строки символов являющейся записью заданного действительного числа, строка должна содержать указанное количество цифр после запятой.( с правилами округления цифр)
C++ Создать базу данных (БД) склада компьютерного магазина Есть задание помоги интересует не выполнение а справка что можете посоветовать почитать на эту тему что нужно использовать и если можно примеры. в программировании слаб заушник( времени мало информации в инете мало. помогите!!! Задание: Все задания выполняются на языки c++ в среде Visual Studio. Результатом выполнения задания является работающая консольная программа, протокол, который... http://www.cyberforum.ru/cpp-beginners/thread1190798.html
Создать класс BitString для работы с битовыми строками не более чем из 100 бит C++
Создать класс BitString для работы с битовыми строками не более чем из 100 бит. Битовая строка должна быть представлена массивом типа unsignet char, каждый элемент которого принимает значение 0 или 1. Реальный размер массива задаётся как аргумент конструктора инициализации. Должны быть реализованы все традиционные операций для работы с битовыми строками: and, or, xor, not. Реализовать сдвиг влево...
C++ Отсортировать массив по возрастанию количества цифр, встречающихся в записи числа
Дан массив целых положительных чисел b1,b2,...,bn.Отсортировать массив по возрастанию количества цифр,встречающихся в записи числа.
C++ Подсчитать количество параллелограммов, из которых найти один с наибольшим периметром http://www.cyberforum.ru/cpp-beginners/thread1190789.html
Среди N четырехугольников с заданными сторонами подсчитать количество параллелограммов,из которых найти один с наибольшим периметром.
C++ Определить класс с именем ZNAK Само задание: 1. Определить класс с именем ZNAK, содержащий следующие поля: Фамилия, Имя. Знак Зодиака День рождения (массив из трёх чисел) Определить методы доступа к этим полям и перегруженные операции извлечения и вставки для объектов типа ZNAK. Проблема только с днём рождения. Не могу описать, так как февраль имеет 28 и 29 дней + просчитывание високосного года и с месяцами тоже самое.... подробнее

Показать сообщение отдельно
Ilot
Модератор
Эксперт С++
1767 / 1142 / 223
Регистрация: 16.05.2013
Сообщений: 3,020
Записей в блоге: 5
Завершенные тесты: 1
28.05.2014, 09:13     Запретить редактирование переменной внутри класса
Цитата Сообщение от Cra3y Посмотреть сообщение
в чистом С++ так не получится...
Впринципе можно. Для этого нужно использовать константный объект и переменные члены объявленные со спецификатором mutable. Однако это не всегда хорошее решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Test
{
public:
  int Count;
  mutable int Sec;
  Test(): Count(), Sec()
  {}
};
 
int main()
{
  const Test t;
  int x;
  x = t.Count; //можно
  //t.Count = x; //нельзя
 
  x = t.Sec; //можно
  t.Sec = x; //можно
  return 0;
}
Но лучше использовать const спецификаторы полей класса:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Test
{
public:
  const int Count;
  int Sec;
  Test(): Count(), Sec()
  {}
};
 
int main()
{
  Test t;
  int x;
  x = t.Count; //можно
  //t.Count = x; //нельзя
 
  x = t.Sec; //можно
  t.Sec = x; //можно
  return 0;
}
 
Текущее время: 10:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru