diff --git a/dbus/bus.cc b/dbus/bus.cc
index 76c9612..e62058e 100644
--- a/dbus/bus.cc
+++ b/dbus/bus.cc
@@ -151,8 +151,7 @@
     connection_type(PRIVATE) {
 }
 
-Bus::Options::~Options() {
-}
+Bus::Options::~Options() = default;
 
 Bus::Bus(const Options& options)
     : bus_type_(options.bus_type),
diff --git a/dbus/bus_unittest.cc b/dbus/bus_unittest.cc
index 71101e6..f8dfa33 100644
--- a/dbus/bus_unittest.cc
+++ b/dbus/bus_unittest.cc
@@ -30,7 +30,7 @@
 class RunLoopWithExpectedCount {
  public:
   RunLoopWithExpectedCount() : expected_quit_calls_(0), actual_quit_calls_(0) {}
-  ~RunLoopWithExpectedCount() {}
+  ~RunLoopWithExpectedCount() = default;
 
   void Run(int expected_quit_calls) {
     DCHECK_EQ(0, expected_quit_calls_);
diff --git a/dbus/dbus_statistics_unittest.cc b/dbus/dbus_statistics_unittest.cc
index e39b9b5..164d0b3 100644
--- a/dbus/dbus_statistics_unittest.cc
+++ b/dbus/dbus_statistics_unittest.cc
@@ -12,8 +12,7 @@
 
 class DBusStatisticsTest : public testing::Test {
  public:
-  DBusStatisticsTest() {
-  }
+  DBusStatisticsTest() = default;
 
   void SetUp() override { statistics::Initialize(); }
 
diff --git a/dbus/end_to_end_async_unittest.cc b/dbus/end_to_end_async_unittest.cc
index d96ebda..0e2f4a7 100644
--- a/dbus/end_to_end_async_unittest.cc
+++ b/dbus/end_to_end_async_unittest.cc
@@ -589,8 +589,7 @@
 
 class SignalMultipleHandlerTest : public EndToEndAsyncTest {
  public:
-  SignalMultipleHandlerTest() {
-  }
+  SignalMultipleHandlerTest() = default;
 
   void SetUp() override {
     // Set up base class.
diff --git a/dbus/end_to_end_sync_unittest.cc b/dbus/end_to_end_sync_unittest.cc
index d0dafcc..0bc146f 100644
--- a/dbus/end_to_end_sync_unittest.cc
+++ b/dbus/end_to_end_sync_unittest.cc
@@ -19,8 +19,7 @@
 // operations (i.e. ExportedObject side).
 class EndToEndSyncTest : public testing::Test {
  public:
-  EndToEndSyncTest() {
-  }
+  EndToEndSyncTest() = default;
 
   void SetUp() override {
     // Start the test service;
diff --git a/dbus/message.cc b/dbus/message.cc
index ec0b223..13f3235 100644
--- a/dbus/message.cc
+++ b/dbus/message.cc
@@ -446,8 +446,7 @@
     dbus_message_iter_init_append(message_->raw_message(), &raw_message_iter_);
 }
 
-MessageWriter::~MessageWriter() {
-}
+MessageWriter::~MessageWriter() = default;
 
 void MessageWriter::AppendByte(uint8_t value) {
   AppendBasic(DBUS_TYPE_BYTE, &value);
@@ -716,9 +715,7 @@
     dbus_message_iter_init(message_->raw_message(), &raw_message_iter_);
 }
 
-
-MessageReader::~MessageReader() {
-}
+MessageReader::~MessageReader() = default;
 
 bool MessageReader::HasMoreData() {
   const int dbus_type = dbus_message_iter_get_arg_type(&raw_message_iter_);
diff --git a/dbus/mock_bus.cc b/dbus/mock_bus.cc
index 9e76454..30cffb0 100644
--- a/dbus/mock_bus.cc
+++ b/dbus/mock_bus.cc
@@ -11,7 +11,6 @@
 MockBus::MockBus(const Bus::Options& options) : Bus(options) {
 }
 
-MockBus::~MockBus() {
-}
+MockBus::~MockBus() = default;
 
 }  // namespace dbus
diff --git a/dbus/mock_exported_object.cc b/dbus/mock_exported_object.cc
index ff507dd..f8a6703 100644
--- a/dbus/mock_exported_object.cc
+++ b/dbus/mock_exported_object.cc
@@ -11,7 +11,6 @@
     : ExportedObject(bus, object_path) {
 }
 
-MockExportedObject::~MockExportedObject() {
-}
+MockExportedObject::~MockExportedObject() = default;
 
 }  // namespace dbus
diff --git a/dbus/mock_object_manager.cc b/dbus/mock_object_manager.cc
index dcba78e..3f0c0a1 100644
--- a/dbus/mock_object_manager.cc
+++ b/dbus/mock_object_manager.cc
@@ -12,7 +12,6 @@
     : ObjectManager(bus, service_name, object_path) {
 }
 
-MockObjectManager::~MockObjectManager() {
-}
+MockObjectManager::~MockObjectManager() = default;
 
 }  // namespace dbus
diff --git a/dbus/mock_object_proxy.cc b/dbus/mock_object_proxy.cc
index a1fe0bd..4929486 100644
--- a/dbus/mock_object_proxy.cc
+++ b/dbus/mock_object_proxy.cc
@@ -12,8 +12,7 @@
     : ObjectProxy(bus, service_name, object_path, DEFAULT_OPTIONS) {
 }
 
-MockObjectProxy::~MockObjectProxy() {
-}
+MockObjectProxy::~MockObjectProxy() = default;
 
 void MockObjectProxy::CallMethod(MethodCall* method_call,
                                  int timeout_ms,
diff --git a/dbus/mock_unittest.cc b/dbus/mock_unittest.cc
index f7540ec..34327cd 100644
--- a/dbus/mock_unittest.cc
+++ b/dbus/mock_unittest.cc
@@ -28,8 +28,7 @@
 
 class MockTest : public testing::Test {
  public:
-  MockTest() {
-  }
+  MockTest() = default;
 
   void SetUp() override {
     // Create a mock bus.
diff --git a/dbus/object_manager.cc b/dbus/object_manager.cc
index 5ba5c8d..90d7337 100644
--- a/dbus/object_manager.cc
+++ b/dbus/object_manager.cc
@@ -26,8 +26,7 @@
   : object_proxy(nullptr) {
 }
 
-ObjectManager::Object::~Object() {
-}
+ObjectManager::Object::~Object() = default;
 
 ObjectManager::ObjectManager(Bus* bus,
                              const std::string& service_name,
diff --git a/dbus/property.cc b/dbus/property.cc
index dd3df26..4197589 100644
--- a/dbus/property.cc
+++ b/dbus/property.cc
@@ -23,7 +23,7 @@
 
 PropertyBase::PropertyBase() : property_set_(nullptr), is_valid_(false) {}
 
-PropertyBase::~PropertyBase() {}
+PropertyBase::~PropertyBase() = default;
 
 void PropertyBase::Init(PropertySet* property_set, const std::string& name) {
   DCHECK(!property_set_);
@@ -45,8 +45,7 @@
       property_changed_callback_(property_changed_callback),
       weak_ptr_factory_(this) {}
 
-PropertySet::~PropertySet() {
-}
+PropertySet::~PropertySet() = default;
 
 void PropertySet::RegisterProperty(const std::string& name,
                                    PropertyBase* property) {
diff --git a/dbus/property_unittest.cc b/dbus/property_unittest.cc
index 9d2c3a2..6c381bb 100644
--- a/dbus/property_unittest.cc
+++ b/dbus/property_unittest.cc
@@ -31,7 +31,7 @@
 // Property<>.
 class PropertyTest : public testing::Test {
  public:
-  PropertyTest() {}
+  PropertyTest() = default;
 
   struct Properties : public PropertySet {
     Property<std::string> name;
