kali 改为gnome
用C语言进行OOP编程?
在本文中,我们将研究Glib对象系统,也称为“ GObject”,直到最近它还是GTK +的一部分。 但是在研究Glib 2.0中的新对象系统之前,我们需要解决一个更基本的问题-“对象系统”到底是什么,为什么存在? 毕竟,C是否不是面向对象的语言? 可以用C编写面向对象的程序,还是必须使用C ++?
答案是,它是在C语言编写的面向对象的程序。但是,由于对象的概念是不是C语言规范的一部分,外部库需要提供这种支持。 在本文中,我们使用术语“对象系统”来描述提供OOP编程所需基础的库,而Glib是此类库的示例。 Glib提供了类,继承,引用计数,信号,接口和对象属性的C实现。 通过使用Glib,C程序员可以轻松编写面向对象的程序。
因此,有可能在C.写面向对象的程序。但是,你可能会想知道为什么GTK +开发商没有先走一步,使用C ++来代替。 在没有涵盖所有可能的解释的情况下,这里有一些理由使拥有C语言的对象系统有意义。其中一个原因是,有许多开发人员只喜欢C而不是C ++。 在其他情况下,由于项目或平台的限制,可能无法选择使用C ++编译器。 无论出于何种原因,拥有用于C的对象系统都会为更多潜在的开发人员打开OOP编程(尤其是GNOME编程),对此我们深表感谢。
C ++包装器
话虽如此,所有那些C ++狂热者都不必担心-您也可以用C ++编写GNOME程序。 由于C ++是C语言的超集,因此您可以轻松地将C样式的Glib / GTK +代码与现有的C ++项目结合在一起。 另外,您可以改用Glib / GTK + C ++包装器。 Glib / GTK + C ++包装器将允许您使用本机C ++类和对象与Glib对象进行交互。