Константные и не-константные переменные. Оператор const_cast.



const_cast

· Назначение: Снятие/установка модификатора const или volatile.

· Ограничения на expression_from: ссылка или указатель.

· Ограничения на type_to: должен совпадать с типом expression_from с точностью до модификаторов const или volatile.

· Производит ли код: нет.

· Возможные ошибки: чревато попыткой изменить неизменный объект.

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

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

В приведенном примере тип класса содержит константные поля, которые инициализируются во время компиляции.

using System;

classMyClass

{

publicconst string MESSAGE = "Привет!";

publicconst double PI = 3.14;

publicconstbool TRUE = true;

publicconstbool FALSE =!TRUE;

 

publicMyClass()

{

Console.WriteLine("{0} {1} {2} {3}",

MESSAGE, PI, TRUE, FALSE);

}

}

class Start

{

static void Main()

{

MyClassmyClass = new MyClass();

Console.ReadLine();

}

}

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


Дата добавления: 2015-12-21; просмотров: 1; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!