C++编程失乐园
致力于解决论坛的不足,探讨C++的原理
C++随笔 之 C++多态性分析
原文出处
http://community.csdn.net/Expert/topic/5240/5240218.xml?temp=.6121942
C++多态性是基于抽象类来实现的,什么叫抽象类?
抽象类就是不能被实例化的类,主要是因为类中包含一个纯虚函数
例如:
virtual void draw() = 0;
抽象类不能实例化,但是其派生类可以
派生类重写draw()函数之后就可以实例化对象了,那么n个派生类可以有n种不同的draw()函数
举一个例子:
例如: 人[ 男人 女人]
人可以[劳动]吧,那么我们就把[劳动]这个函数定义为纯虚函数,
那么在定义[男人]的时候,我们就可以重写[劳动]函数,让他进行耕地操作
在定义[女人]的时候,我们就可以重写[劳动]函数,让她进行织布操作
那么在人劳动的时候,具体到男人,那就是耕地,具体到女人,那就是织布
以上就是一个最简单的解释
那么我们如果出现这个问题,人还分为老年人,中年人,小孩子
那么我们在继承人这个类的时候,把老年人,中年人,小孩子,不能重写它的劳动函数,也就是劳动函数还是一个纯虚函数,下面我给出一个图
[比喻不是很确却,抱歉]
下面我给例子:
Code Example
class Person
{
virtual void Do() = 0;
};
class OldPerson:public Persion
{
};
class OldMan:public OldPerson
{
void Do()
{
抽烟,聊天();
}
};
class OldWoman:public OldPerson
{
void Do()
{
洗衣服();
}
}
class MidPerson:public Person
{
};
class MidMan:public MidPerson
{
void Do()
{
耕地();
}
};
class MidWoman:public MidPerson
{
void Do()
{
织布();
}
};
......下面小孩子的我就不写了,相信聪明的你一下子就知道怎么写了
void 劳动(const Person &person)
{
person.Do();
}
void main()
{
MidWoman midwomen;
MidMan midman;
劳动(midwoman);
劳动(midman);
}
posted on 2006-12-25 15:42
木木头
阅读(181)
评论(0)
编辑
收藏
引用
所属分类:
C++特性
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
C++随笔 之 C++风格的类型转换的用法 (转载)
C++随笔 之 explicit 关键字(转载)
C++随笔 之 文件操作(转载)
C++随笔 之 函数模板(Function Template)1 (原创)
C++随笔 之 关于C++中的指针问题
C++随笔 之 泛型编程与设计新思维(转载)
C++随笔 之 STL[vector]的存储技术(原创)
C++随笔 之 C++标准库5(原创)--STL
C++随笔 之 C++标准库4(原创)--模版方法
C++ 随笔 之 C++标准库3(原创)--C++标准库简介
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
导航
C++博客
首页
管理
<
2006年12月
>
日
一
二
三
四
五
六
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
统计
随笔 - 33
文章 - 1
评论 - 15
引用 - 0
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(3)
给我留言
查看公开留言
查看私人留言
随笔分类
(29)
C++特性(25)
(rss)
UML工程(3)
(rss)
破解(1)
(rss)
搜索
最新随笔
1. UML随笔 之 类图描述
2. UML随笔 之 Rose对VC的正向 反向工程
3. UML随笔 之 类 关系
4. C++随笔 之 C++风格的类型转换的用法 (转载)
5. C++随笔 之 explicit 关键字(转载)
6. C++随笔 之 文件操作(转载)
7. C++随笔 之 函数模板(Function Template)1 (原创)
8. C++随笔 之 关于C++中的指针问题
9. C++随笔 之 泛型编程与设计新思维(转载)
10. C++随笔 之 STL[vector]的存储技术(原创)
最新评论
1. re: UML随笔 之 Rose对VC的正向 反向工程
学习一下
--秦歌
2. re: C++随笔 之 C++标准库5(原创)--STL
评论内容较长,点击标题查看
--ptrrrrr
3. re: C++随笔 之 C++测试题目
评论内容较长,点击标题查看
--试了一下
4. re: C++随笔 之 C++测试题目
评论内容较长,点击标题查看
--zmy12006@hotmail.com
5. re: C++随笔 之 C++测试题目
评论内容较长,点击标题查看
--zmy12006@hotmail.com