在对象上使用流操作符

use of flow operators on objects

我在使用运算符在对象上注入输入/输出流时遇到问题(运算符<<) 我实际上是在编写代码以在我的对象上制作“cout <<”运行 并显示它们的值;这是以下代码,特别是一个函数和一个 class 方法,位于同一个 class 文件中:

-功能码:

ostream &operator<<( ostream &flux, Duree const& duree)
{
duree.afficher(flux) ; // <- Changement ici
return flux;
}

-方法代码:

void Duree::afficher(ostream &flux) const
{
flux << m_heures << "h" << m_minutes << "m" << m_secondes << "s";
}

但问题是,当我编译时,我被告知“ostream 不是类型名称”、“ostream 未在此代码中声明”。 我不明白,但我搜索了互联网,显然这是正确的做法。我正在使用 Code :: Blocks 的 20.3 版。

要使其正常工作,函数必须在主文件中,而不是在 class 文件中。