Не создавайте пустые констукторы и прочие специальные функции

Не нужно создавать пустые конструкторы, деструкторы и операторы, за исключением редких случаев (например, есть конвертирующий конструктор, из-за которого компилятор не создает конструктор по-умолчанию).

Неправильно:

MyObject::MyObject() {
}

Правильно:

class MyObject {
public:
    MyObject() = default;
}

На самом деле нужно руководствоваться правилами нуля (rule of zero) и пяти (rule of five). Зачастую специальные функции не нужны.