У меня есть функция, которая имеет два экземпляра классов в качестве аргументов:
void cookPasta(const Tomato& tomato, const Meat* meat)
{
if (meat != nullptr)
cookPastaWithMeat(tomato, *meat);
else
cookPastaWithoutMeat(tomato);
}
Как показывает функция, всегда требуется экземпляр Tomato
, тогда как Meat
является необязательным и вместо него может быть передан nullptr
. Я делаю это, чтобы функция cookPasta
вызывалась, даже если пользователь никогда не объявлял экземпляр класса Meat
.
Неправильная ли практика смешивания ссылок и указателей в сигнатуре функции?