首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

const的用法解决办法

2012-05-21 
const的用法 谁能帮忙详细解释一下,非常感谢!对以下const的使用方法不正确说明是:()(1)constint*AA()(2)i

const的用法

谁能帮忙详细解释一下,非常感谢!
对以下const的使用方法不正确说明是:()
(1)const   int*   AA();
(2)int   BB(int*   const   pa);
(3)int   CC(const   int*   pa);
(4)int   D::DD(void)   const;

A)(1)的作用是防止AA函数返回的int*被修改;
B)(2)的作用是防止在BB函数内参数pa的值被修改;
C)(3)的作用是防止在CC函数内参数*pa的值被修改;
D)               (4)的作用是防止DD函数在执行过程中修改DD类的数据成员或者调用非const函数;


[解决办法]
const修饰那个变量就表示不允许修改那个变量的值。解释什么呢?
const int* AA(); const修饰int*
int BB(int* const pa); 修饰pa
(3)int CC(const int* pa); 修饰*pa
(4)int D::DD(void) const; 修饰整个函数,那么真个函数都不修改变量
[解决办法]
记住:前固数,后固址
[解决办法]
俺觉得A是错的
(1)const int* AA(); 
正确的说法应该是:AA返回的指针所指向的内容不可改变

如果严格点,全面一点的话,(4)也是错的,比如如果D类中有一个成员变量用mutable修饰时,DD也是可以修改它的。

(2)(3)的说法看不出有啥错。
[解决办法]
B、C似乎木有错。
A是错的,应该是AA返回的指针所指向的内容不可变

D严格点说也是错的,比如如果类中的某个成员变量由mutable修饰过,那么DD也是可以修改这个成员变量的。
[解决办法]
A错的。 A的意思是返回的指针的所指向的值是不能被修改的。。总之如果const在前面,就是是值const,如果在后面就是地址const。

热点排行