设为首页 加入收藏

TOP

C++ 中的const关键字
2015-07-20 17:31:45 来源: 作者: 【 】 浏览:2
Tags:const 关键字
为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下:
常变量: const Type 变量名 或 Type const 变量名 //两者等同, 如: const int a=5; 与 int const a=5; 等同
常引用: const Type &引用名
常对象: Type const 对象名
常成员函数: 类名::fun(形参) const
常数组: Type const 数组名[大小]
常指针: const Type* 指针名 ,Type* const 指针名

首先提示的是:在常变量(const 类型说明符 变量名)、常引用(const 类型说明符 &引用名)、常对象(类名 const 对象名)、 常数组(类型说明符 const 数组名[大小]), const” 与 “类型说明符”或“类名”(其实类名是一种自定义的类型说明符) 的位置可以互换。如:

一、Const作用

如下表所示:

\

二、Const的用法

常变量: const 类型说明符 变量名
常引用: const 类型说明符 &引用名
常对象: 类名 const 对象名
常成员函数: 类名::fun(形参) const
常数组: 类型说明符 const 数组名[大小]
常指针: const 类型说明符* 指针名 ,类型说明符* const 指针名 <??http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+Mi4xoaKzo8G/08O3qDwvcD4KPHA+ICAgICAgICAgY29uc3QgVHlwZSB2YXJpYmFsZSA9IHZhbHVlIG9yIFR5cGUgY29uc3QgdmFyaWFibGUgPSB2YWx1ZTsgINTaQyYjNDM7JiM0MzvW0LOj08PAtMzmu7sjZGVmaW5lo6zSu7j21K3S8srH1Nqx4NLrxve0psDt1LTC68rHsbvUpLSmwO3G99LG19/By6Ost6LJ+rTtzvPKsbrctffK1KO7tdq2/rj21K3S8srHw7/KudPD0ru0zra8u+HW2NDCyerH68TatOajrNT2vNO0+sLrwuujrLb4Y29uc3TU8ta70ru33cTatOa/1bzkoaM8L3A+CjxwPjIuMqGi1rjV68q508NDT05TVDxicj4KKDEp1rjV67G+ye3Kx7Ojwb+yu7/JseQ8YnI+CiAgICAgKGNoYXIqKSBjb25zdCBwQ29udGVudDsgPGJyPgogICAgIGNvbnN0IChjaGFyKikgcENvbnRlbnQ7IDxicj4KKDIp1rjV68v51rjP8rXExNrI3crHs6PBv7K7v8mx5Dxicj4KICAgICBjb25zdCAoY2hhcikgKnBDb250ZW50OyA8YnI+CiAgICAgKGNoYXIpIGNvbnN0ICpwQ29udGVudDsgPGJyPgooMynBvdXftryyu7/JseQ8YnI+CiAgICAgIGNvbnN0IGNoYXIqIGNvbnN0IHBDb250ZW50OyA8YnI+Cig0Kbu509DG5NbQx/ix8Le9t6ijrNHY18UqusW7rtK7zPXP36O6PGJyPgrI57n7Y29uc3TOu9PaKrXE1/Oy4KOs1PJjb25zdL7NysfTw8C00N7Kzta41evL+da4z/K1xLHkwb+jrLy01rjV69a4z/LOqrOjwb+juzxicj4KyOe5+2NvbnN0zrvT2iq1xNPSsuCjrGNvbnN0vs3Kx9Deys7WuNXrsb7J7aOsvLTWuNXrsb7J7crHs6PBv6GjPC9wPgo8cD48L3A+CjxwIGFsaWduPQ=="left">3、函数中使用CONST

(1)const修饰函数参数
a.传递过来的参数在函数内不可以改变(无意义,因为Var本身就是形参)

void function(const int Var);

b.参数指针所指内容为常量不可变

void function(const char* Var);

c.参数指针本身为常量不可变(也无意义,因为char* Var也是形参)

void function(char* const Var);

d.参数为引用,为了增加效率同时防止修改。修饰引用参数时:

void function(const Class& Var); //引用参数在函数内不可以改变

void function(const TYPE& Var); //引用参数在函数内为常量不可变

(2)const 修饰函数返回值
可以阻止用户修改返回值。返回值也要相应的付给一个常量或常指针。

4、const修饰成员函数

const对象只能访问const成员函数,而非const对象可以访问任意的成员函数,包括const成员函数;
const对象的成员是不能修改的,而通过指针维护的对象确实可以修改的;
const成员函数不可以修改对象的数据,不管对象是否具有const性质。编译时以是否修改成员数据为依据进行检查。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Codeforces 474 D. Flowers 下一篇BZOJ 1041 HAOI2008 圆上的整点 ..

评论

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

·在 Redis 中如何查看 (2025-12-26 03:19:03)
·Redis在实际应用中, (2025-12-26 03:19:01)
·Redis配置中`require (2025-12-26 03:18:58)
·Asus Armoury Crate (2025-12-26 02:52:33)
·WindowsFX (LinuxFX) (2025-12-26 02:52:30)