C语言实现OOP (ing)

本文探讨如何在C语言中实现面向对象编程的三大概念——封装、继承和多态。通过示例代码解释了如何利用结构体实现类的定义,以及如何处理继承和多态,强调了在C语言中实现这些概念时的注意事项和技巧。
摘要由CSDN通过智能技术生成

    想用C来实现OOP,关键在于结构体。struct和OOP中的class最大区别为默认的继承访问权限:struct是public的,大家都能看到,class是private的,只有指定的对象看得到。

码农翻身里面有一篇文章讲到过用c语言来实现OOP,今天参照着它撸了一下oop的三大概念:封装、继承、多态。

1 封装:意思就是把信息隐藏起来。

举个例子,先创建一个shape结构体,然后实现create和init等方法,之后将源代码封装成库。这样一来,外部程序只能看见头文件的接口原型,而看不到其内部结构。

  shape.h

//声明结构体
struct Shape;
//api原型
struct Shape *Shape_create(int x,int y);
void Shape_init(struct Shape *self, int x,int y);
void Shape_move(struct Shape *self, int x,int y);
float Shape_area(struct Shape *self);
...

shape.c

struct Shape{
  int x;
  int y;
};

struct Shape *Shape_create(int x, int y){
  struct Shape *s = malloc(sizeof(struct Shape));
  s->x= x;
  s->y= y;
  return s;
}

void Sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值