Функциональность этой функции заключается в том, что она будет выводить (в терминал или файл в зависимости от типа объекта ostream & os, передаваемого в качестве параметра) данные MyString (представление C -строки в m_buffer). Я получаю сообщение об ошибке компилятора, в котором говорится, что «нет соответствия для« operator == »», особенно в части кода, в которой говорится «if (os == std :: cout)» Есть предложения? Спасибо!
//in header file
friend std::ostream & operator<<(std::ostream & os, const MyString & myStr);
//in cpp file
bool MyString::operator==(const MyString & other)const{
if(strcmp(m_buffer,other.m_buffer) == 0){
return true;
}else if (strcmp(m_buffer,other.m_buffer) != 0){
return false;
}
}
std::ostream& operator<<(std::ostream& os, const MyString& myStr){
if(os == std::cout){
os << myStr.m_buffer << std::endl;
}
}