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*
posted on
2012-04-12 11:53chuwachen
阅读(191)
评论(0)
收藏举报