C ++覆盖运算符<<在继承的类中

时间:2016-02-21 13:37:34

标签: c++ stream operator-overloading

我有一个基类,其中覆盖<<操作员。

    friend std::ostream& operator<<(std::ostream& out, const Animal& animal);
    ostream & operator<<(ostream & out, const Animal& animal)
{
    out << animal.age << "," << animal.size << endl;
}

这是我的Abonne课程的.h。我有一个名为Etudiant的Abonne类的继承类。我希望覆盖&lt;&lt;再次在Etudiant类中运算符,但我希望它调用运算符&lt;&lt;在Etudiant类的定义中基类Abonne,加上更多。我试过这个:

    friend ostream& operator<<(ostream& out, const Dog& dog);

ostream& operator<<(ostream& out, const Dog& dog)
{
    return out << dog << endl;
}

它不起作用,回想起&lt;&lt;本身并递归,直到它崩溃。

我该怎么办?

谢谢。

1 个答案:

答案 0 :(得分:0)

轻松!您需要调用带{ sprintf(uap->buf,"Hello"); /* fill the buffer with Hello */ 的版本。所以,只需这样做:

p->p_retval[0] = 0; /* set the return value of the system call*/
return 0;
}