Перегрузить метод или использовать значения по умолчанию? C ++
Я все еще относительно новичок в C ++, и я не могу понять разницу в следующих двух способах кодирования функции, которая может принимать один параметр или, возможно, два, три или более. Во всяком случае, вот моя точка
перегрузка функции:
int aClass::doSomething(int required)
{
//DO SOMETHING
}
int aClass::doSomething(int required, int optional)
{
//DO SOMETHING
}
чем это отличается от значения по умолчанию:
int aClass::doSomething(int required, int optional = 0)
{
//DO SOMETHING
}
Я знаю, что в разных обстоятельствах одно может быть более подходящим, чем другое, но о каких вещах я должен знать при выборе между каждым из этих вариантов?