设为首页 加入收藏

TOP

C++ 中 const 常量函数 static 变量 整理
2014-11-23 22:06:51 来源: 作者: 【 】 浏览:10
Tags:const 常量 函数 static 变量 整理

const 只对其左边起作用,如果左边没数据 则对右边起作用


如:const int * p; //修饰int 指向的数不能修改(即:不能 *p = 3形式),但指针可以修改


int const * p 同const int *p ;


int * const p 修饰* 是常量指针 指针不能修改(即:不能 int a ,p= &a )但其指向变量可以修改(可以*p = 3))


常成员函数声明:<类型标志符>函数名(参数表)const;


说明:


(1)const是函数类型的一部分,在实现部分也要带该关键字。


(2)const关键字可以用于对重载函数的区分。


(3)常成员函数不能更新类的成员变量,也不能调用该类中没有用const修饰的成员函数,只能调用常成员函数。


1、const成员:只能在构造函数后的初始化列表中初始化


2、static成员:初始化在类外,且不加static修饰


3、const static成员:类只有唯一一份拷贝,且数值不能改变。因此,可以在类中声明处初始化,也可以像static在类外初始化


4.const 对象只能调用const成员函数


.在类中允许存在同名的常量函数和非常量函数,编译器根据调用该函数的对象选择合适的函数


当非常量对象调用该函数时,先调用非常量函数;


当常量对象调用该函数时,只能调用常量函数;


如果在类中只有常量函数而没有与其同名的非常量函数,则非常量与常量对象都可调用该常量函数;


常量引用返回值


如果你想从常量方法(函数)中通过引用返回this对象的一个成员,你应该使用常量引用来返回它,即const X&


陷阱:有一种例外,常量成员函数可以改变静态数据成员;另外,如果使用关键字mutable修饰数据成员,那么甚至常量数据成员也可以修改它。不过别担心这种例外情况。


对于X类型的非常量成员函数而言,其this指针的类型是X * const,该指针自身是常量;但是对于X类型的常量成员函数而言,其this指针的类型是const X * const,是一个常量指针。


C语言梳理一下,分布在以下10个章节中:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++ 拷贝构造函数 赋值函数调用 下一篇QT 监听 USB 设备 插入、拔出动作

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: