我试图重载运营商"<<"在c ++中。我有一个名为TCalendario的类,有3个私有int属性,3个公共getter在公共模式下返回这个变量,但是当我尝试将getter的返回值保存在另一个int变量中时,我无法编译。测试错误是:
"无法转换' TCalendario :: Dia'来自type' int(TCalendario ::)()'输入' int'"
私人属性:
private:
int dia, mes, anyo
吸气鬼:
int TCalendario::Dia()
{
return dia;
}
int TCalendario::Mes()
{
return mes;
}
int TCalendario::Anyo()
{
return anyo;
}
我尝试编译时崩溃的代码是:
ostream& operator<<(ostream &x, TCalendario &c)
{
int day=c.Dia;
int month=c.Mes;
int year=c.Anyo;
}
答案 0 :(得分:0)
您错过了函数调用中的()
int day=c.Dia();
int month=c.Mes();
int year=c.Anyo();
答案 1 :(得分:0)
为了调用不带参数的方法,你需要放置空括号,如下所示:
int day=c.Dia();