学习笔记之深入浅出MFC 第8章 C++重要性质-----类封装

“面向对象”在软件界是众所周知的。其实,面向对象的程序设计(OOP即Object Oriented Programming)其实是一种观念,用什么语言实现都可以。只不过使用面向对象程序语言(Object Oriented Programming Language)更加的便利(因为是专门为面向对象观念而发展出来的,并完成了面向对象的封装、继承、多态等特性)。

C++是最重要的面向对象的语言,因为它站在C语言的肩膀上(C语言的地位相信无人能反驳)。C++其实并非纯粹的面向对象的程序语言,它即继承了C语言的特性,又在C语言基础上添加了面向对象的新特性。但是这种混血使得它更加强大。(所谓的纯面向对象语言,是指不管什么东西,都应该存在于对象中,JAVA和Small Talk都是纯面向对象语言)

1、类及其成员-----谈封装(encapsulation)

什么是对象?什么是类呢?对象就是我们周围的所有东西,类就是这些东西的属性。比方说,正方形这个东西(对象),有一些共有的属性(比如四个角,四条边,每边都是直角),这些共有的属性的集合就是类。

对象的属性有两大成员,我们通常称为成员变量(member variable)和成员函数(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)特性。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值