diff --git a/rclcpp/include/rclcpp/rate.hpp b/rclcpp/include/rclcpp/rate.hpp index 296cce14a1..55d3bbcb85 100644 --- a/rclcpp/include/rclcpp/rate.hpp +++ b/rclcpp/include/rclcpp/rate.hpp @@ -31,6 +31,7 @@ class RateBase public: RCLCPP_SMART_PTR_DEFINITIONS_NOT_COPYABLE(RateBase) + virtual ~RateBase() {} virtual bool sleep() = 0; virtual bool is_steady() const = 0; virtual void reset() = 0; diff --git a/rclcpp/include/rclcpp/timer.hpp b/rclcpp/include/rclcpp/timer.hpp index 7fc375dace..66a7529bce 100644 --- a/rclcpp/include/rclcpp/timer.hpp +++ b/rclcpp/include/rclcpp/timer.hpp @@ -62,6 +62,7 @@ class TimerBase /// TimerBase destructor RCLCPP_PUBLIC + virtual ~TimerBase(); /// Cancel the timer. diff --git a/rclcpp_lifecycle/include/rclcpp_lifecycle/lifecycle_publisher.hpp b/rclcpp_lifecycle/include/rclcpp_lifecycle/lifecycle_publisher.hpp index 2f94dc78c0..2a87b34c89 100644 --- a/rclcpp_lifecycle/include/rclcpp_lifecycle/lifecycle_publisher.hpp +++ b/rclcpp_lifecycle/include/rclcpp_lifecycle/lifecycle_publisher.hpp @@ -36,6 +36,7 @@ namespace rclcpp_lifecycle class LifecyclePublisherInterface { public: + virtual ~LifecyclePublisherInterface() {}; virtual void on_activate() = 0; virtual void on_deactivate() = 0; virtual bool is_activated() = 0; diff --git a/rclcpp_lifecycle/include/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp b/rclcpp_lifecycle/include/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp index 86ebc22604..9f2459e296 100644 --- a/rclcpp_lifecycle/include/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp +++ b/rclcpp_lifecycle/include/rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp @@ -100,6 +100,10 @@ class LifecycleNodeInterface RCLCPP_LIFECYCLE_PUBLIC virtual CallbackReturn on_error(const State & previous_state); + + RCLCPP_LIFECYCLE_PUBLIC + virtual + ~LifecycleNodeInterface() {} }; } // namespace node_interfaces