测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A28375. 关于下面代码,说法错误的是( )。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;…

单选题 困难

题目描述

关于下面代码,说法错误的是(    )。

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;
}

选项(单选)

上一题 下一题