В следующем коде в основной функции форма объявляется как указатель на объект класса Shape, но адрес объекта класса Rectangle, а именно rec, сохраняется в следующей строке. скажи мне, где я ошибаюсь в своем понимании.Пример указателя на объект класса в C++
class Shape {
protected:
int width, height;
public:
Shape(int a=0, int b=0)
{
width = a;
height = b;
}
int area()
{
cout << "Parent class area :" <<endl;
return 0;
}
};
class Rectangle: public Shape{
public:
Rectangle(int a=0, int b=0)
{
Shape(a, b);
}
int area()
{
return (width * height);
}
};
class Triangle: public Shape{
public:
Triangle(int a=0, int b=0)
{
Shape(a, b);
}
int area()
{
return (width * height/2);
}
};
int main()
{
Shape *shape;//pointer to Shape class
Rectangle rec(10,7);
Triangle tri(10,5);
shape = &rec;//address of Rectangle class object saved
shape->area();
shape = &tri;
shape->area();
return 0;
}
Что вы на самом деле спрашиваете? Может быть, вы можете уточнить свой вопрос. – juanchopanza
Прямоугольник - это форма. См. «Наследование» – manuell
Вам нужно вернуться и перечитать разделы по объектно-ориентированному программированию. –