Значение по умолчанию более полезно для конструкторов копирования, если у вас есть класс с большим количеством атрибутов.
Например, если у вас есть этот класс:
class MyClass {
private:
int offset;
std::string name;
std::vector<Person*> relatives;
float weight;
MyClass* spouse;
Vehicle* car;
double houseArea;
Date birth;
Person* parents[2];
public:
/* Default constructor will be defined here */
};
вместо определения конструктора копирования следующим образом:
MyClass(const MyClass& that) :
offset(that.offset),
name(that.name),
relatives(that.relatives),
weight(that.weight),
spouse(that.spouse),
car(that.car),
houseArea(that.houseArea),
birth(that.birth),
parents(that.parents)
{}
вы бы определили это так:
MyClass(const MyClass&) = default;