Можно ли использовать GTK + с C ++? - PullRequest
3 голосов
/ 11 апреля 2011

Я выбираю GUI инструментарий для C ++ для изучения. Я провел поиск в Интернете, и большинство людей предлагают GTKmm для C ++ вместо GTK +. Несмотря на это, я видел несколько приложений C ++, созданных с использованием GTK +.

Поэтому я просто хочу знать конкретные причины этого:
1. Почему GTKmm предпочтительнее для C ++?
2. С какими ограничениями я столкнусь, если буду использовать GTK + для приложений C ++ вместо GTKmm?

1 Ответ

17 голосов
/ 11 апреля 2011
  • 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

...