我正在为 C++ 选择一个 GUI 工具包来学习。我在网上做了一些搜索,大多数人建议使用 GTKmm for C++ 而不是 GTK+。尽管如此,我还是看到了一些使用 GTK+ 制作的 C++ 应用程序。
因此,我只想知 Prop 体的原因:
1. 为什么 GTKmm 是 C++ 的首选?
2. 如果我使用 GTK+ for C++ 应用程序而不是 GTKmm,我将面临哪些限制?
最佳答案
- 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+ 不一致的引用计数策略。
关于c++ - 是否可以将 GTK+ 与 C++ 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5616386/