- It is OK to pass a non-const variable to a function with const parameter; it is incorrect to pass a const variable to a function with non-const parameter.
- non-const function can invoke const function; const function can't invoke non-const function.
- A* const a // const pointer, non-const object; a can't point to other objects, but the object that it points can be changed.
- A aa;
- *a = aa; // ok because *a is non-const object.
- a can call non-const function in class A.
- a = &aa // error, because a is a const pointer.
- const A* a // non-const pointer, const object; a can point to other objects, but the object that it points can't be changed.
- A aa;
- *a = aa; // error, because *a is a const object.
- a can't call non-const function in class A.
- a = &aa // ok, because a is a non-const pointer.
- STL iterators are similar to pointer.
- xxx::iterator is equal to T*
- const xxx::iterator is equal to T* const
- xxx::const_iterator is equal to const T*
- xxx::iterator is equal to T*
转载于:https://www.cnblogs.com/chuwachen/archive/2012/04/12/3911062.html