C语言和设计模式(继承、封装、多态)25
2012-01-21 22:13
239 查看
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
记得还在我们大学C++第一门课的时候,老师就告诉我们说,C++是一门面向对象的语言。C++有三个最重要的特点,即继承、封装、多态。等到后来随着编码的增多和工作经验的积累,我也慢慢明白了面向对象的含义。可是,等我工作以后,使用的编程语言更多的是C语言,这时候我又想能不能把C语言变成面向对象的语言呢?等到后来通过思考和实践,我发现其实C语言也是可以面向对象的,也是可以应用设计模式的,关键就在于如何实现面向对象语言的三个重要属性。
(1)继承性
[cpp] view plaincopyprint?
typedef struct _parent
{
int data_parent;
}Parent;
typedef struct _Child
{
struct _parent parent;
int data_child;
}Child;
(3)多态
[cpp] view plaincopyprint?
typedef struct _Play
{
void* pData;
void (*start_play)(struct _Play* pPlay);
}Play;
typedef struct _Play
{
void* pData;
void (*start_play)(struct _Play* pPlay);
}Play;
多态,就是说用同一的接口代码处理不同的数据。比如说,这里的Play结构就是一个通用的数据结构,我们也不清楚pData是什么数据,start_play是什么处理函数?但是,我们处理的时候只要调用pPlay->start_play(pPlay)就可以了。剩下来的事情我们不需要管,因为不同的接口会有不同的函数去处理,我们只要学会调用就可以了。
记得还在我们大学C++第一门课的时候,老师就告诉我们说,C++是一门面向对象的语言。C++有三个最重要的特点,即继承、封装、多态。等到后来随着编码的增多和工作经验的积累,我也慢慢明白了面向对象的含义。可是,等我工作以后,使用的编程语言更多的是C语言,这时候我又想能不能把C语言变成面向对象的语言呢?等到后来通过思考和实践,我发现其实C语言也是可以面向对象的,也是可以应用设计模式的,关键就在于如何实现面向对象语言的三个重要属性。
(1)继承性
[cpp] view plaincopyprint?
typedef struct _parent
{
int data_parent;
}Parent;
typedef struct _Child
{
struct _parent parent;
int data_child;
}Child;
[cpp] view plaincopyprint? struct _Data; typedef void (*process)(struct _Data* pData); typedef struct _Data { int value; process pProcess; }Data; struct _Data; typedef void (*process)(struct _Data* pData); typedef struct _Data { int value; process pProcess; }Data;封装性的意义在于,函数和数据是绑在一起的,数据和数据是绑在一起的。这样,我们就可以通过简单的一个结构指针访问到所有的数据,遍历所有的函数。封装性,这是类拥有的属性,当然也是数据结构体拥有的属性。
(3)多态
[cpp] view plaincopyprint?
typedef struct _Play
{
void* pData;
void (*start_play)(struct _Play* pPlay);
}Play;
typedef struct _Play
{
void* pData;
void (*start_play)(struct _Play* pPlay);
}Play;
多态,就是说用同一的接口代码处理不同的数据。比如说,这里的Play结构就是一个通用的数据结构,我们也不清楚pData是什么数据,start_play是什么处理函数?但是,我们处理的时候只要调用pPlay->start_play(pPlay)就可以了。剩下来的事情我们不需要管,因为不同的接口会有不同的函数去处理,我们只要学会调用就可以了。
相关文章推荐
- 【C/C++学院】0804-C语言和设计模式(继承、封装、多态)
- C语言和设计模式(继承、封装、多态)
- C语言和设计模式(继承、封装、多态)
- 01.C语言和设计模式(继承、封装、多态)
- C语言设计模式-继承、封装和多态
- C语言和设计模式(继承、封装、多态)
- C语言和设计模式(继承、封装、多态)
- 2、C语言和设计模式(继承、封装、多态)
- C语言和设计模式(继承、封装、多态) 【文章都是来自网络,只要自己吸取了就是自己的】
- C语言和设计模式(继承、封装、多态)
- C语言设计模式-封装-继承-多态
- C语言设计模式-封装-继承-多态
- C语言设计模式-封装-继承-多态
- Java中类的继承,属性和方法的四种修饰符的作用范围,final关键字,java的三大特点中的2个:封装和多态,以及多态的一个设计模式,模板方法模式(template method)
- 0.1-设计模式怎么样解决设计问题-抽象与封装、继承、多态
- 设计模式_Java多态,继承,封装
- 【设计模式】面向对象之封装、继承、多态
- 设计模式学习(一):java 面向对象特征:抽象、封装、多态、继承
- 设计模式之---多态、封装、继承
- IOS开发之电子菜单的设计与实现(继承、封装、多态)