您的位置:首页 > 其它

const vs non-const

2012-04-12 11:53 120 查看
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*
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: