QObject предоставляет механизмы управления памятью, сигналы и слоты для обмена сообщениями между объектами, поддержку метаобъектной системы (Meta-Object System) для рефлексии и возможность использования свойств и динамического полиморфизма. В целом, наследование от QObject целесообразно использовать в следующих случаях:
1. Когда необходимо использовать сигналы и слоты для организации взаимодействия между объектами.
2. Когда требуется использовать динамическое связывание для обработки событий.
3. Когда нужно использовать систему метаобъектов для доступа к метаинформации объекта (например, для сериализации).
В конкретном случае оконного приложения на C++ с использованием Qt для классов Canvas, Figure и Link имеет смысл наследовать их от QObject, если их объекты будут взаимодействовать через сигналы и слоты, если требуется управление памятью или использование свойств. Однако, если данные классы не требуют указанных выше возможностей QObject, то можно обойтись и без наследования от него.