hey, i have overridden operator<<
and when i'm trying to use it in a print method (const) i'm getting an error :
the overriden operator :
ostream& operator <<(ostream& os, Date& toPrint)
{
return os << toPrint.GetDay() << "/" << toPrint.GetMonth() << "/" << toPrint.GetYear();
}
where i'm trying to use it :
void TreatmentHistory::TreatmentHistoryPrint() const
{
cout << m_treatmentDate << "\n" << endl;
}
You are using your operator<<
in a const
member function, thus m_treatmentDate
is const
(unless declared mutable
). You need to fix your operator<<
to take const
arguments:
ostream& operator <<(ostream& os, const Date& toPrint);
Note that for this to work GetDay()
, GetMonth()
and GetYear()
have to be const
member functions as well.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With