C++重要性质01:封装(Encapsulation)
来源:互联网 发布:销售数据分析怎么写 编辑:程序博客网 时间:2024/06/08 14:30
序:大学四年浑浑噩噩,光阴虚度;值此毕业之际,如梦方醒;然亦无所悔恨,既有所悟,惟勤勉耳。近来研习《深入浅出MFC》,受益良多,故而摘抄一二,置此博文之中,以备不时翻阅。小子不才,无所增益,学而践之而已。此文摘自《深入浅出MFC》第二章C++的重要性质。
【 类别及其成员--封装】
如果我们把世界视为一个由对象(object)所组成的大环境,则任何实际物体都可以认为是对象。为了描述对象,应该把对象的属性描述出来。在C++这个大环境中,给「对象的属性」一个比较学术的名词,就是「类别」(class)。
对象的属性,即类别,有两大成员,一是数据,一是行为。在面向对象的术语中,前者常被称为「性质」(property),后者常被称为「方法」(method)。另有一对比较像程序设计领域的术语,名为「成员变量」(membervariable)和「成员函数」(member function)。
如果以CSquare 代表「四方形」这种类别,假定四方形有颜色(color)、可以展示(display)。这里color 就是一种成员变量,display 就是一种成员函数:
CSquare square; // 声明square 是一个四方形
square.color = RED; // 设定成员变量,RED 代表一个颜色值
square.display(); // 调用成员函数
下面是C++ 语言对于CSquare 的描述:
class CSquare // 以C 作为类别名称的开头
{
private:
int m_color; // 通常以m_ 作为成员变量的名称开头
public:
void display() { ... }
void setcolor(int color) { m_color = color; }
};
成员变量可以只在类别内被处理,也可以开放给外界处理。以数据封装的目的而言,自然是前者较为妥当,但有时候也不得不开放。为此,C++ 提供了private、public 和protected 三种修饰词。一般而言成员变量尽量声明为private,成员函数则通常声明public。上例的m_color 既然声明为private,我们势必得准备一个成员函数setcolor()供外界设定颜色用。
把数据声明为private,不允许外界随意存取,只能通过特定的接口来操作,这就是面向对象的封装(encapsulation)特性。
- C++重要性质01:封装(Encapsulation)
- 封装(Encapsulation)、
- java笔记-封装(Encapsulation)
- 封装(encapsulation)的好处
- 封装 Encapsulation
- 为何要用封装(Encapsulation)
- java的封装特性(Encapsulation)
- Java - Encapsulation封装(面向对象1-封装)
- C++ Encapsulation(封装)
- java之封装 Encapsulation
- C++语言(三)——封装(Encapsulation)
- GRE:通用路由封装(GRE: Generic Routing Encapsulation)
- GRE(Generic Routing Encapsulation,通用路由封装)简介
- 我也谈谈封装 Encapsulation
- java 封装,Encapsulation in Java
- C++重要性质02:继承(Inheritance)
- C++重要性质03:多态(Polymorphism)
- C++重要性质08:模板(Template)
- java集合框架源码学习目录(持续更新中)
- Ubuntu14.10下LAMP的环境配置
- TransactionProxyFactoryBean 代理事务 $Proxy9 cannot be cast to异常解决方法
- NDK实现的加密/解密库-Codec
- Dialog 和 RecyclerView 一起用
- C++重要性质01:封装(Encapsulation)
- javafx如何实现模态/模式对话框
- mongodb获取具体某一天的查询语句
- 第五周 项目4 长方形类
- c++实验三-个人所得税计算器
- win10激活
- Gradle入门
- 使用python3自带工具2to3.py 转换 python2.x 代码 到python3
- 第七届ccf认证第四题 自己写的错误答案