一级棒(Eachfun)
RSS订阅
类的概念
发表时间:2006-09-15 23:40:31 关键词:C++,VC,Primer,MFC,编程

  引用:类是C++中最重要的特征。C++语言的早期版本被命名为“带类的C”。
  引用:最简单地说来,类就是定义了一个新的类型和一个新的作用域。
  写本文之前,我曾停下来考虑过:怎样才能概括出类?确切地说,我们从依葫芦画瓢开始一步一步写自己的类,慢慢地都会把类给学会。这中间可能要走一段弯路,总有一天会“蓦然回首,那人却在灯火阑珊处。”但是,要自己总结出什么是类,似乎还有点难度。
  C++之前的struct被叫做“结构体”,这个名字起得好,把一定的数据按某个结构组织起来,要取一起取、要存一起存、要处理一起处理。严格说来,即使不使用结构体也未必写不出同样功能的程序。但是结构体这种组织结构明显更利于编写与理解。
  类与C时代的结构体比,用“封装”代替了“组织”。“封”的概念是类的组织结构未必需要对外公布,那么,不对外公布结构的结构怎样被操作?类之所以可以这样做,是因为类允许亲自定义操作细则,而露出墙外的只是最简单的操作方法(即接口)。这就好比一辆汽车,司机未必需要懂得发动机原理、传动原理,只要学会几个简单的动作就可以驾驶。
  那么,一旦类被“封装”,它与结构体相比就出现了另一个特性:抽象。结构体就是一个五脏六腑都让人看得清清楚楚的组织,而类却是只露一枝红杏在外,其余都被裹得严严实实。类的使用者可以凭这枝红杏来想像园子里的美景,他无权也没必要关心园子里的细节。
  我曾经给一个不懂类的朋友打过一个比方:如果你要骑自行车,你可能要先看一看是否需要打气,而把自行车定义成类以后,你只要发出“骑”命令即可,是否需要打气由类自己去判断并实现。类的这个优点被我发现后,我立即将我自己编写的函数库改成了类库。(包括ASP的函数库也全部写成了类库,这不属于本文要讨论的范畴。)
  统观一个类的组成,它就是由“成员”组成的。从形式上分,成员包括成员变量和成员函数。(其中成员变量不一定是简单变量,还可以是其它类的对象),从可访问性上分,成员包括公有、私有和保护成员。于是它们可以组合出二三得六种不同特性的成员。
  补充说明一点,本文中提到struct时指明了“C时代的”,因为C++中也是struct,它也是定义类的关键词。struct和class的区别在于“在类的左花括号之后、第一个访问标号之前定义的成员的访问级别”。如:
关键词 MyClass
{
  int i;//特殊
public:
  int j;//公有
private:
  int k;//私有
};
  其中i究竟是公有的还是私有的,依赖于关键词是class还是struct。

本站特约顾问律师常州东晟律师事务所朱立律师(电话13915029670,QQ646146109)提醒您:
本站文章皆为作者原创,其它媒体(包括但不限于报刊、杂志、网站、电视、电台)未经作者书面许可严禁转载(或部分摘录)!
发表评论
称呼:
QQ:
邮箱:
链接:
内容:
搜索: 百度搜索 Google搜索
Copyright©2000 - 2008 Eachfun.Com, All Rights Reserved 一级棒网络
苏ICP备05080156号
一级棒建站系统 http://www.eachfun.com 一级棒版权所有,未经许可不得商用!