Есть два места const
может пойти:
T* p1; // non-const pointer, non-const object
T const* p2; // non-const pointer, const object
T* const p3; // const pointer, non-const object
T const* const p4; // const pointer, const object
Просто читать справа налево. По этой причине становится понятнее, если вы пишете типы как T const
вместо const T
(хотя в моем коде лично я по-прежнему предпочитаю const T
).
Вы специально создаете вектор указателей на объекты const. Обратите внимание, что вы могли бы не создать вектор константных указателей, так как вектор требует, чтобы его элементы были скопируемыми (или, в C++ 11, хотя бы подвижными), а указатель const тоже не является.
Я думаю, вы можете найти эту страницу на часто задаваемых моделях C++. http://www.parashift.com/c++-faq/const-correctness.html –
Возможный дубликат [в чем разница между const int \ *, const int \ * const, int const \ *] (http: // stackoverflow.com/questions/1143262/what-is-the-difference-between-const-int-const-int-const-int-const) – OMGtechy