如何在C ++中为基类和派生类创建不同的运算符重载<<?

我有2个矩形和正方形的类,它们从矩形继承 是否可以实现以下选项的不同输出? 选项1:

Recatngle *d=new Square;
cout<<d;

选项2:

Square d;
cout<<d;

我已经在矩形类中创建了

friend ostream& operator<<(ostream& o, Rectangle& d);

但在方班 线 朋友ostream&运算符<<(ostream&o,Square&d); 解决错误

评论