码迷,mamicode.com
首页 > 编程语言 > 详细

c++中的const函数

时间:2018-03-09 16:16:30      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:成员   html   c++   amp   检查   需要   内联函数   成员变量   style   

在C++中,只有被声明为const的成员函数才能被一个const类对象调用。

        要声明一个const类型的类成员函数,只需要在成员函数参数列表后加上关键字const,例如,

class Screen {  
public:  
   char get() const;  
};  

      在类体之外定义const成员函数时,还必须加上const关键字,例如  

char Screen::get() const {  
   return _screen[_cursor];  
}  

   若将成员成员函数声明为const,则该函数不允许修改类的数据成员。例如,

class Screen {  
public:
    int a;
public:  
 Screen()
{
    a=0;
}
void ok() const 
{
    a=1;//错误
 }  

};  

 下面的这个例子比较经典:

int a=0;
const int *p=&a;//把一个可以修改的变成不可以修改的----正确


const int b=100;
int *p=&b; //把一个不可以修改的变成可以修改了----错误

 总结:

1.const成员函数可访问const成员变量和普通成员变量,但不能修改任何变量。检查发生在编译时。

 普通函数可访问const成员变量,不可以修改。.(在访问的时候会自动转成const的)

(成员函数和变量之间都是可访问不可以修改)

2.const对象只能访问const成员函数,

(const对象只可访问const的,也只可以被const的访问)

3.const对象的成员变量不可以修改。

4.const成员函数不能调用非const成员函数,因为非const成员函数可以会修改成员变量

5.普通成员函数可以访问非const对象的普通数据成员、const数据成员,但不可以访问const对象的任意数据成员。(除了此点外,普通的都可以访问const的)

6.const成员函数只是用于非静态成员函数,不能用于静态成员函数。

7.const成员函数的const修饰不仅在函数声明中要加(包括内联函数),在类外定义出也要加。

8.作为一种良好的编程风格,在声明一个成员函数时,若该成员函数并不对数据成员进行修改操作,应尽可能将该成员函数声明为const 成员函数。

参考资料:

https://www.cnblogs.com/shenckicc/p/6847103.html

https://www.cnblogs.com/myseasky/p/7458064.html

c++中的const函数

标签:成员   html   c++   amp   检查   需要   内联函数   成员变量   style   

原文地址:https://www.cnblogs.com/curo0119/p/8534299.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!