深入浅出C语言(6)----C语言实现面向对象

C语言是面向过程的语言,可以用来实现面向对象么?答案是肯定的。
面向对象的本质是一种设计思想,与具体的语言没有多大的关系。C语言不是面向对象语言却也可以用来实现面向对象思想的。
有人会觉得用C实现面向对象,充其量是模拟面向对象的语法,而不是像C++那样真的面向对象的。这也算是不太正确的看法的。
为什么这么说?
请先看看C++的类与对象吧
class student
{
  public:
     Int getNum()
     {
}
  private:
     Int num;
};
这是一个基本的C++类的声明,当使用这个类定义一个东西的时候,如:
student one;
编译器也就为one 这个对象只为数据成员分配了空间,即为 int num; 分配了空间,
没有为所谓 getNum()方法来分配任何东西的。
如果用C来写,就可以这样写:
struct student
{
   Int num;
};
 Int getNum()
{
}
用C写的这段code与C++写的那段code本质是等效的。
不过,有人要说了,C++声明的student类会有构造函数及析构函数,你的C语言就没有。。
OK,我们先给上述C++的code加上一个构造函数。
class student
{
  public:
    s

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值