作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
有没有办法用 C
编程语言编写类似 OO 的代码?
另见:
通过搜索“[c] oo”找到。
最佳答案
第一个 C++ 编译器(“C with classes”)实际上会生成 C 代码,所以这绝对是可行的。
基本上,您的基类是一个结构;派生结构必须在第一个位置包含基结构,这样指向“派生”结构的指针也将是指向基结构的有效指针。
typedef struct {
data member_x;
} base;
typedef struct {
struct base;
data member_y;
} derived;
void function_on_base(struct base * a); // here I can pass both pointers to derived and to base
void function_on_derived(struct derived * b); // here I must pass a pointer to the derived class
函数可以作为函数指针成为结构的一部分,因此像 p->call(p) 这样的语法成为可能,但您仍然必须显式地将指向结构的指针传递给函数本身。
关于c - 如何在 C 中模拟 OO 风格的多态性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/524033/
我来自 Asp.Net 世界,试图理解 Angular State 的含义。 什么是 Angular 状态?它类似于Asp.Net中的ascx组件吗?是子页面吗?它类似于工作流程状态吗? 我听到很多人
我一直在寻找 3 态拨动开关,但运气不佳。 基本上我需要一个具有以下状态的开关: |开 |不适用 |关 | slider 默认从中间开始,一旦用户向左或向右滑动,就无法回到N/A(未回答)状态。 有人
我是一名优秀的程序员,十分优秀!