Witam, mam problem w kwestii dziedziczenia wirtualnego. Chodzi mi o to, żeby klasa Square dziedziczyła z klasy Rectangle metodę area(), a z klasy Rhombus metodę perimiter(). Dodatkowo klasa Square ma dziedziczyć po klasie abstrakcyjnej Polygon.
class Rectangle :public Polygon
{
protected:
Point p1, p2, p3, p4;
public:
Rectangle(Point pkt_1, Point pkt_2, Point pkt_3, Point pkt_4)
{
p1 = pkt_1;
p2 = pkt_2;
p3 = pkt_3;
p4 = pkt_4;
}
float dl_1, dl_2;
float perimiter();
float area();
};
//-----------------------------------------------------------------------
class Rhombus :public Polygon
{
protected:
Point p1, p2, p3, p4;
public:
Rhombus(Point pkt_1, Point pkt_2, Point pkt_3, Point pkt_4)
{
p1 = pkt_1;
p2 = pkt_2;
p3 = pkt_3;
p4 = pkt_4;
}
float perimiter();
float area();
};
//-------------------------------------------------------------------
class Square :virtual public Rhombus, virtual public Rectangle
{
Point p1, p2, p3, p4;
public:
Square(Point pkt_1, Point pkt_2, Point pkt_3, Point pkt_4)
{
p1 = pkt_1;
p2 = pkt_2;
p3 = pkt_3;
p4 = pkt_4;
}
// <-- metoda area() z klasy Rectangle
// <-- metoda perimeter() z klasy Rhombus
};