C++ 学习之路(7):共享数据的保护
2016-03-16 18:13
309 查看
/* 共享数据的保护: 常类型(指使用类型修饰符const说明的类型)的引入,就是为了 既保护数据共享又防止数据被改动 此例含有: 1、常引用 2、常对象 3、常对象成员: i.常数据成员 ii.常成员函数 */ /* 常引用: #include <iostream> using namespace std; int add(const int &i, const int &j); int main() { int a=20; int b=30; cout<<a<<"+"<<b<<"="<<a+b<<endl; return 0; } int add(const int &i, const int &j) // 函数add()的形参是常引用,因此 { i = i + 30; // 不允许改变i的值 j = j - 10; // 不允许改变j的值 return (i+j); } */ #include <iostream> using namespace std; class Date { private: const int year; const int month; const int day; public: Date(int y,int m,int d); // 类Date的构造函数声明 /*此处声明了2个同名函数showDate(),它们是重载的。可见,关键字 const可以被用于对重载函数进行区分。*/ void showDate(); // 普通成员函数声明 void showDate() const; // 常成员函数声明 }; /* C++规定只能通过构造函数的成员初始化列表对常数据成员进行初始化 */ Date::Date(int y,int m,int d):year(y),month(m),day(d) {} void Date::showDate() // 普通成员函数定义 { cout<<"调用普通成员函数显示日期:"<<endl; cout<<year<<"."<<month<<"."<<day<<endl; } void Date::showDate() const // 常成员函数定义 { cout<<"调用常成员函数显示日期:"<<endl; cout<<year<<"."<<month<<"."<<day<<endl; } int main() { // 普通对象定义 Date date1(2016,3,15); date1.showDate(); // 常对象定义 const Date date2(2016,3,16); date2.showDate(); return 0; }
注:
普通成员函数
对普通数据成员,可以访问,可以改变值
对常数据成员,可以访问,但不可以改变值
对常对象的数据成员,不允许访问和改变值
常成员函数
对普通数据成员,可以访问,但不可以改变值
对常数据成员,可以访问,但不可以改变值
对常对象的数据成员,可以访问,但不可以改变值
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性