Я создал a Date
тип, у которого было 3 члена int day_
, month_
и year_
. я перегружен operator<<
для Date
и я не знаю, что это лучший выбор: у меня есть функция настоящее время драйвер называется ostream& showDate(ostream& os)
определяется следующим образом:Параметры перегрузки оператора C++
std::ostream& Date::showDate(std::ostream& os) const {
return os << day_ << '/' << month_ << '/' << year_ << std::endl;
}
operator<<
называют его:
std::ostream& operator<<(std::ostream& os, const Date& d) {
return d.showDate(os);
}
Но есть и другой вариант:
std::ostream& operator<<(std::ostream& os, const Date& d) {
return os << d.getDay() << '/' << d.getMonth() << '/' << d.getYear() << std::endl;
}
Какой у вас лучший выбор?
Этот вопрос основан на мнениях, поскольку обе реализации функционально идентичны. –
гул ... оба для меня приемлемы, кроме 'std :: endl'. 'operator <<' не должен принимать решение о возврате строки (и флеша) – Garf365
Единственное, что я могу сказать, это то, что для избыточного кода будет _both_ 'метод showDate()' и ваш второй 'operator << () 'реализация. – mindriot