C++.Бархатный путь



         

Указатель this - часть 4


CVОписатель ::= const ::= *****

Так что небольшая модификация функции-члена PrintVal, связанная с добавлением cvОписателя const: void PrintVal() const;

в прототипе и

void ComplexType::PrintVal() const { ::::: }

в определении функции обеспечивает относительную защиту данных от возможной модификации.

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

this->CTcharVal = 125; real = imag*25; imag++;

cvОписатель const в заголовке функции не допускает непосредственной модификации значений принадлежащих объекту данных.

Заметим также, что this указатель включается также в виде дополнительного параметра в список параметров конструктора. И в этом нет ничего удивительного, поскольку его значением является всего лишь область памяти, занимаемая объектом.




Содержание  Назад  Вперед