关于下面代码,说法错误的是( )。
class Shape { protected: string name; public: Shape(const string& n) : name(n) {} virtual double area() const { return 0.0; } }; class Circle : public Shape { private: double radius; // 半径 public: Circle(const string& n, double r) : Shape(n), radius(r) {} double area() const override { return 3.14159 * radius * radius; } }; class Rectangle : public Shape { private: double width; // 宽度 double height; // 高度 public: Rectangle(const string& n, double w, double h) : Shape(n), width(w), height(h){} double area() const override { return width * height; } }; int main() { Circle circle("MyCircle", 5.0); Rectangle rectangle("MyRectangle", 4.0, 6.0); Shape* shapePtr = &circle; cout << "Area: " << shapePtr->area() << endl; shapePtr = &rectangle; cout << "Area: " << shapePtr->area() << endl; return 0; }