技术宅,fat-man

增加语言的了解程度可以避免写出愚蠢的代码

导航

2013年7月27日 #

C语言实现OOP 版本3 :简化代码

摘要: 我倒是不追求代码和C++相似,但是应该追求简洁的代码,下面是一个新的尝试shape.h#ifndef SHAPE_H#define SHAPE_Htypedef struct shape_t { void *shapeData; void (*area)(void *); void (*release)(void *);}Shape;void release(void *shape);#endifshape.c#include #include "shape.h"void release(void *shape){ free(((Shape*)shape)->shap 阅读全文

posted @ 2013-07-27 13:20 codestyle 阅读(372) 评论(0) 推荐(0)

C语言实现OOP 版本2

摘要: 写版本2的原因,还是发现在不同的具体图形模块里发现了重复的release代码,这是坏味道,所以还是决定消除这些重复代码,DRY!shape.h#ifndef SHAPE_H#define SHAPE_Htypedef struct shape_t { void *shapeData; void (*area)(void *); void (*release)(void *);}Shape;void release(void *shape);#endifshape.c#include #include "shape.h"void release(void *shape){ . 阅读全文

posted @ 2013-07-27 01:46 codestyle 阅读(417) 评论(0) 推荐(0)

C语言实现的OOP

摘要: 我倒不是为了OOP而OOP,实在是OOP的一些特征,例如封装,多态其实是软件工程思想,这些思想不分语言,遵循了这些思想可以使得程序更有弹性,更易修改和维护,避免僵化,脆弱shape.h该文件定义的是图形接口,所有具体图形都必须实现自己计算面积,周长等API#ifndef SHAPE_H#define SHAPE_Htypedef struct shape_t { void *shapeData; void (*area)(void *); void (*release)(void *);}Shape;#endifcircle.h 圆形接口#ifndef CIRCLE_H#de... 阅读全文

posted @ 2013-07-27 01:24 codestyle 阅读(1811) 评论(2) 推荐(0)