
C语言面向对象
希哈科技
希哈科技 (XIHA) 致力于成为全球领先的AIoT产品与技术服务解决方案提供商。把 “赋能万物,机器智能” 作为核心价值观。相信所秉承的 “星球万物,智慧物联” 的使命,会持续为客户创造长期价值。
展开
-
C语言面向对象编程:封装与继承(1)
最近在用 C 做项目,之前用惯了 C++ ,转回头来用C 还真有点不适应。 C++ 语言中自带面向对象支持,如封装、继承、多态等面向对象的基本特征。 C 原本是面向过程的语言,自身没有内建这些特性,但我们还是可以利用 C 语言本身已有的特性来实现面向对象的一些基本特征。接下来我们就一一来细说封装、继承、多态、纯虚类等面向对象特性在 C 语言中如何实现,并且给出实例。 这篇文章中我们先说封...转载 2018-11-29 18:12:46 · 871 阅读 · 0 评论 -
C语言面向对象编程:继承详解(2)
在 C 语言面向对象编程(一)里说到继承,这里再详细说一下。 C++ 中的继承,从派生类与基类的关系来看(出于对比 C 与 C++,只说公有继承): 派生类内部可以直接使用基类的 public 、protected 成员(包括变量和函数) 使用派生类的对象,可以像访问派生类自己的成员一样访问基类的成员 对于被派生类覆盖的基类的非虚函数,在派生类中可以通过基类名和域作用符(::)来访问...转载 2018-11-29 18:13:49 · 573 阅读 · 0 评论 -
C语言面向对象编程:虚函数与多态(3)
在《 C++ 编程思想》一书中对虚函数的实现机制有详细的描述,一般的编译器通过虚函数表,在编译时插入一段隐藏的代码,保存类型信息和虚函数地址,而在调用时,这段隐藏的代码可以找到和实际对象一致的虚函数实现。 我们在这里提供一个 C 中的实现,模仿 VTABLE 这种机制,但一切都需要我们自己在代码中装配。 之前在网上看到一篇描述 C 语言实现虚函数和多态的文章,谈到在基类中保存...转载 2018-11-29 18:14:52 · 335 阅读 · 0 评论 -
C语言面向对象编程:面向接口编程(4)
Java 中有 interface 关键字,C++ 中有抽象类或纯虚类可以与 interface 比拟,C 语言中也可以实现类似的特性。 在面试 Java 程序员时我经常问的一个问题是:接口和抽象类有什么区别。 很多编程书籍也经常说要面向接口编程,我的理解是,接口强制派生类必须实现基类(接口)定义的契约,而抽象类则允许实现继承从而导致派生类可以不实现(重写)基类(接口)定义的...转载 2018-11-29 18:15:38 · 326 阅读 · 0 评论 -
C语言面向对象编程:单链表实现(5)
前面我们介绍了如何在 C 语言中引入面向对象语言的一些特性来进行面向对象编程,从本篇开始,我们使用前面提到的技巧,陆续实现几个例子,最后呢,会提供一个基本的 http server 实现(使用 libevent )。在这篇文章里,我们实现一个通用的数据结构:单链表。 这里实现的单链表,可以存储任意数据类型,支持增、删、改、查找、插入等基本操作。(本文提供的是完整代码,可能有些长。) ...转载 2018-11-29 18:17:37 · 281 阅读 · 0 评论 -
C语言面向对象编程:配置文件解析(6)
在实际项目中,经常会把软件的某些选项写入配置文件。 Windows 平台上的 INI 文件格式简单易用,本篇文章利用《C语言面向对象编程(五):单链表实现》中实现的单链表,设计了一个“类” ini_parser 来读写 INI 格式的配置文件。 struct ini_parser 可以解析 INI 格式的字符串、文件,也可以将内存中的符合 INI 格式的数据写入文件,能够支持 Windo...转载 2018-11-29 18:19:28 · 276 阅读 · 0 评论