MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
Как в C++ различать "константный указатель" и "указатель на константу"
27.06.2016
20:39
Раздел: Компьютер - Программирование - Язык C++

Для C++ еще есть известный пазл: константный указатель/указатель на константу. Применение слова ключевого слова const весьма вариативно:

int *const p1

int const* p2

const int* p3


Чтобы понимать, что при таких формах записи считается константой, можно вопрользоваться простым правилом:

const модифицирует то, что написано прямо перед ним, за исключением (какой С++ без исключений) случая, когда это первое слово в строке. В этом случае, очевидно, модифицирует то, что прямо после.


И сразу легко понять что:

const int ** const p4


это константный указатель на указатель на константный int.


Есть еще и другое мнемотическое правило для const модификатора, которая может упростить понимание. А именно:


Константно то, что слева от модификатора const.


Примеры:

Object(Object const& object); //константен обьект
Object(Object & const object); //ошибка к ссылке не могут быть применены const/volatile модификаторы
Object(Object const* object); //константен обьект, указатель можно менять
Object(Object *const object); //Обьект можно менять, указатель константен
Object(Object const *const object); //Константен обьект, указатель константен


Так же в этом разделе:
← Содержание ...
 
MyTetra Share v.0.35
Яндекс индекс цитирования