相关疑难解决方法(0)

实验:面向对象的C?

可能重复:
你能用C编写面向对象的代码吗?

嗨!

只是为了它的乐趣,我在最后两天一直在尝试用纯C创建一个非常简单,非常直接的对象环境.我一直在玩着宏,动态链接,类型描述结构等,我到达了以下内容:

string_o str = new(String, "hello world");
list_o list = new(List);

List.pushf(list, str);

printf("In the list: \"%s\"\n",
       String.text(List.popf(list)));

delete(list);
delete(str);
Run Code Online (Sandbox Code Playgroud)

看起来和工作有点好,但我无法找到伪造实例方法的方法.我不能过去Class.function(instance),不能没有功能名称的全局宏替换,这会破坏封装的目的.

同样,这是一个实验,只是为了挑战和乐趣=).你能帮我找出办法吗?我不想使用额外的预处理,只需要使用普通的C和GCC宏.

编辑>忘了说 - 我不希望每个实例在其结构中包含函数指针.这会给我方法语法好,但这意味着一个4字节的数据对象会有十几个函数指针复制到每个实例.这有点像作弊= P哈哈

提前致谢!

c macros object

5
推荐指数
1
解决办法
1519
查看次数

标签 统计

c ×1

macros ×1

object ×1