嗨,可有人点我一个教程解释我如何OOP概念可以在ANSI C实现:
- 虚拟功能
- 继承
- 最佳实践
约OOP编程ANSI C书将是巨大的。
嗨,可有人点我一个教程解释我如何OOP概念可以在ANSI C实现:
约OOP编程ANSI C书将是巨大的。
这是本书的链接:http://www.planetpdf.com/codecuts/pdfs/ooc.pdf(Ansi-C中的面向对象编程 - 确切的说你在找什么)。
祝你好运,并有耐心。用C写OOP不是一件容易的事情,但如果你喜欢极端的事物,可能会有所收获!
另一个起点将是检查的GObject:http://library.gnome.org/devel/gobject/和@unwind说GTK是如何使用C. OOP概念的很好的例子,你也可以采取在GLib,是一个很好的库,肯定会令你的C编程生活变得更加容易,它以OOP方式进行编程,并且作为一个优点便携!
GTK +是我想使用的用户界面,因此我_want_学习如何正确使用它。但不幸的是,我宁愿通过讲座来做它,而不是反向工程,这需要更多的时间。 – drahnr 2010-09-23 15:54:59
如果你想使用GTK +,你不仅仅限于C,还有其他语言的绑定,所以你可以开发GTK应用程序:C++,python,vala,C#甚至是Java。 – 2010-09-23 16:03:39
我也知道,但我希望/需要/倾向于重新使用以OOP风格C编写的现有GPLv2项目的代码,这就是要点,而且我不会使用extern或C++ hackz。从长远来看,我认为Linux内核(长期来看) – drahnr 2010-09-23 16:07:45
1.我知道,这个问题不是关于Objective-C,我也没有注意到它。 2.这是我的观点。我知道它是用于过程编程的,但是nobodysaid我只想使用它的设计。 3.参见2. 4。如果你根本没有回答我的问题,我认为我已经足够好地指出了这个观点:我想知道_how_而不是_它是明智的,所以eitherawser我的问题或只是不回答。这是劫持。 – drahnr 2010-09-23 15:51:58
@penguinpower:我说Objective-C的原因是你的一个标签是[objective-c]。我并不是说C在C中做OO是不明智的,只是从你的问题来看,你没有意识到这个区别。我不是故意劫持你的问题 - 我试图帮助基础知识。 – Skilldrick 2010-09-23 18:18:50
必须是拼写错误,从我的手机启动线程,不幸的是,它具有德语的自动完成功能:/如果您觉得我的评论是冒犯性的,那么它不应该是冒犯性的。 – drahnr 2010-09-23 21:09:39
我会建议看看GTK+ GUI toolkit的内部。这是一个用C语言编写的面向对象的系统,展示了你之后的技术。它是开源的,所以没有任何东西阻止你阅读和学习。
面向对象机制没有被定义为C语言的特性。你将不得不通过在C的程序性质之上添加自己的逻辑来模拟面向对象的方法。用一种不是为此而设计的语言会非常难看。
试图锤正方形OO栓成圆Ç孔会导致重写C++。只需使用C++或其他语言。 – 2010-09-23 13:52:19
我没有问*是可能的吗?*但是*如何实现*。而作为GTK +,GGlib是以OOP风格在ANSI C中完成的,它可能有一些存在的权利。 – drahnr 2010-09-23 15:59:48