荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: oasis (期末拉,好好学习~~~), 信区: Visual
标  题: C -> VC (4)
发信站: BBS 荔园晨风站 (Tue Nov 30 22:22:16 1999), 站内信件

                    类封装(二)
    既然知道我们的世界是一个一个对象组成的,那么如果要在计算
机上对这些对象进行运算,或者说将他们之间的关系准确地描述一次
怎么做呢?C++的类!
    那么类又是什么呢?我们还是先回到Bill.Gate的清洁公司。如果
有二间清洁公司,假设一间是ms,一间是金山。它们无论在公司的构
成和公司内部协调运作的守则都是一样的,也都有三个部门,部门也
有主管…………。但是它们也有显著不同的地方,就是Bill.Gate是
属于ms的,而金山可能有一个球波军。那么按照前面的定义,它们就
是两个互不相同的对象。但是仅仅是因为一点不同就要定义两个不同
对象吗?当然不是。C++的类就是到今天为止的最好解决办法。现在
你应该明白,类就是在对象类型,性质,内部关系的再抽象。比如用
char* 来代替球波军,用部门[3] 来代替三个部门,具体来说就是用
类型来代替实体对象,以不定物表示已知物。类如何定义,实现,重
载我就略去不说了。重点讲怎么构造一个完美的类。
    要构造一个类,首先要知道对这个类的要求。第一是要知道有什
么数据成员,第二是要知道成员之间有什么关系。调查的时候要注意
不能越界,不要去盲目关心超出对象范围之内的其他对象。怎么定义
一个对象的范围呢?一般的方法是向下一层,向上一层 ***。这个概
念比较难懂,下面结合清洁公司例子来分析:
    假设我们现在要将金山的人事部用类抽象,那么我们的研究对象
就是人事部,这是第一点要确定的。先来做向上一层,上一层是公司
ok,我们保留一个公司的指针。那么这个对象有没有必要知道老板是
谁呢?没有必要!因为老板是公司的一个属性,应该在公司类里面定
义。再向下一层看,有很多个员工,加入一个员工指针的数组。又有
没有必要知道每一个员工的姓名呢?没有必要。同理,姓名是每个员
工的属性,应该在员工类里面定义。最后加上部门类的属性--主管,
结果生成下面的类:
    class 部门类
    {
    protected:
        公司类* 公司;
        员工类  员工组[];
        主管类  主管;
    }
    class 公司类
    {
    protected:
        老板类  老板;
        部门类  部门组[];
    }
    class 员工类
    {
    protected:
        char* 员工名;
        unsigned int 身高;
        ......................
    }
    主管类,老板类从员工类继承。
    好了,如果你细心的话会看出一层一层细分的结果是什么呢?就
是将抽象的类通过C++基础的数据类型来表示!*****这就是每一个程
序员每天面对的问题。
    构造类的最好一步是确定一些要用的成员函数,例如:构造,析
构........。如果你前面做的好的话,你会发现这是很轻松的事。

--
☆ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: bbs@202.116.46.37]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店