Я все еще относительно новичок в С++, и я не могу понять разницу в следующих двух способах кодирования функции, которая может принимать один параметр или, возможно, два или три или более. Во всяком случае, здесь моя точка
перегрузка функции:
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
}
Я знаю, что в разных обстоятельствах человек может быть более подходящим, чем другой, но о каких вещах я должен знать при выборе между этими параметрами?