共享数据的保护 利用const
2017-09-20 16:38
232 查看
常对象:它的数据成员在整个的对象的生存期内不能改变。常对象必须进行初始化,而且不能被被新。
声明 常对象的语法形式为:
const 类型说明符 对象名;
用const 修饰的类成员
1.常成员函数
类型说明符 函数名(参数表)const;
void print();
void print() const;
以上两个是对print()函数的重载。
注:
(1)const 是函数类型的一个组成部分,因此在函数定义部分也要带const关键字
(2)常对象只能调用常成员函数
(3)常成员函数不能改变目的对象的数据成员的值
#include<iostream>
using namespace std;
class A{
int i;
public:
A(int x):i(x){}
void print() const;
};
void A::print() const {
i+=1; //删去此语句,程序将能运行成功
cout<<"i="<<i<<endl;
}
int main()
{
A a(2);
a.print(); //在调用常成员函数时,暂时将此对象视为常对象!!! a对象调用的
return 0;
}
以上程序运行错误,错误为在为常成员函数定义时,改变了对象a的数据成员i的值
2.常数据 比较 const int i;static const int q; static int w ;
const int i;需要通过初始化列表来获得初值,此值直到程序结束之前,不能对它进行更新
static int w;可以直接赋值 利用 类型说明符 类名::w=? 来赋值,可以对它进行更新,但不会产生副本
static const int q;可以直接利用 const int 类名::q=?来赋值,不可以对它进行更新,也不会产生副本
3.常引用 形参变为常引用 ,引用的对象的数据不能被更新
例子:
class A
func(const A & a) a中的数据成员不能改变,不能调用此函数的非const成员函数
声明 常对象的语法形式为:
const 类型说明符 对象名;
用const 修饰的类成员
1.常成员函数
类型说明符 函数名(参数表)const;
void print();
void print() const;
以上两个是对print()函数的重载。
注:
(1)const 是函数类型的一个组成部分,因此在函数定义部分也要带const关键字
(2)常对象只能调用常成员函数
(3)常成员函数不能改变目的对象的数据成员的值
#include<iostream>
using namespace std;
class A{
int i;
public:
A(int x):i(x){}
void print() const;
};
void A::print() const {
i+=1; //删去此语句,程序将能运行成功
cout<<"i="<<i<<endl;
}
int main()
{
A a(2);
a.print(); //在调用常成员函数时,暂时将此对象视为常对象!!! a对象调用的
return 0;
}
以上程序运行错误,错误为在为常成员函数定义时,改变了对象a的数据成员i的值
2.常数据 比较 const int i;static const int q; static int w ;
const int i;需要通过初始化列表来获得初值,此值直到程序结束之前,不能对它进行更新
static int w;可以直接赋值 利用 类型说明符 类名::w=? 来赋值,可以对它进行更新,但不会产生副本
static const int q;可以直接利用 const int 类名::q=?来赋值,不可以对它进行更新,也不会产生副本
3.常引用 形参变为常引用 ,引用的对象的数据不能被更新
例子:
class A
func(const A & a) a中的数据成员不能改变,不能调用此函数的非const成员函数
相关文章推荐
- const 数据共享与保护
- 利用memcached在多台服务器之间共享PHP的session数据
- 利用jquery和jsonp来获取跨站数据,并实现cookie共享
- 动态权限及利用ContentResolver读取系统的可共享数据
- 如何利用MySQL加密函数保护Web网站敏感数据
- tomcat利用外观模式保护数据
- C++:数据的共享与保护
- 数据的共享与保护(一)
- C++共享数据的保护(常对象,常成员,常引用)
- 利用ContentProvider和ContentResolver达到QQ换肤以及数据共享查询(暂无内容)
- 操作系统以外的硬盘空间-利用DOS/WINDOWS9X的隐含扇区保护数据 - 企鹅人生 - CSDNBlog
- 多域名ThinkPHP利用MEMCACHE方式共享SESSION数据
- 利用PCI DSS保护支付卡数据
- 利用内存映射文件在进程间共享数据
- Android中利用Application实现多个Activity间共享数据
- 利用Application共享全局数据
- C++ [ 共享数据保护 ]
- 利用WCF的P2P共享剪贴板上的数据
- 如何利用MySQL加密函数保护Web网站敏感数据
- C++友元friend --c++利用friend修饰符,可以让一些你设定的函数能够对这些保护数据进行操作