7

我正在为 C++ 选择一个 GUI 工具包来学习。我在网上做了一些搜索,大多数人建议 GTKmm 用于 C++ 而不是 GTK+。尽管如此,我还是看到了一些使用 GTK+ 制作的 C++ 应用程序。

所以,我只想知道具体的原因:
1 、为什么C++首选GTKmm?
2.如果我将GTK+ 用于 C++应用程序而不是 GTKmm ,我将面临哪些限制?

4

1 回答 1

21
  • gtkmm 允许您使用常规 C++ 技术(例如封装、派生和多态性)编写代码。作为一名 C++ 程序员,您可能已经意识到这会导致代码更清晰、更有条理。
  • gtkmm 类型更安全,因此编译器可以检测到只有在使用 C 时才能在运行时检测到的错误。这种对特定类型的使用也使 API 更清晰,因为您可以通过查看方法的宣言。
  • 继承可用于派生新的小部件。在 GTK+ C 代码中派生新的小部件非常复杂且容易出错,几乎没有 C 编码人员这样做。作为 C++ 开发人员,您知道派生是一种必不可少的面向对象技术。
  • 可以使用成员实例,简化内存管理。所有 GTK+ C 小部件都使用指针来处理。作为 C++ 编码器,您知道应该尽可能避免使用指针。
  • 更少的代码。GTK+ C 对象模型使用前缀函数名和转换宏。例如:gtk_button_set_text(GTK_BUTTON(button), "sometext");gtkmm C++ 代码更短更清晰。例如:button.set_text("sometext");
  • 无需担心 GTK+ 不一致的引用计数策略。

来源: http: //live.gnome.org/gtkmm/FAQ

于 2011-04-11T03:13:34.140 回答