question 1 Circle::Circle(float r) { //构造函数初始化数据成员radius
radius = r; radius = r; 不是多此一举吗? 这个构造函数的意义和作用是什么?
question 2 输入结果为10 输出结果与想法不一致(fenceCost为0),输出结果如下图,求解释代码哪里出了问题?
question 3 私有接口成员中一般放什么?
question 4 Circle pool(radius);
Circle poolRim(radius + 3);这两个语句的含义及其作用?
question 5 此语句的含义是什么? poolRim.circumference()
// 4-3游泳池改造预算,Circle类.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#include<iostream>
using namespace std;
const float PI = 3.141593;//给出圆周率的值
const float FENCE_PRICE = 35;//栅栏的单价
const float CONCRETE_PRICE = 20;//过道水泥的单价
float r;
class Circle { //声明定义类Circle及其数据和方法
public: //外部接口
Circle(float r); //构造函数
float circumference(); //计算圆的周长
float area(); //计算圆的面积
private: //私有接口成员
float radius; //圆的半径
};
Circle::Circle(float r) { //构造函数初始化数据成员radius
radius = r;
}
//计算圆的周长
float Circle::circumference() {
return PI * 2 * r;
}
//计算圆的面积
float Circle::area() {
return PI * radius * radius;
}
int main() {
float radius;
cout << "Enter the radius of the pool:";//提示用户输入半径
cin >> radius;
Circle pool(radius); //游泳池边界
Circle poolRim(radius + 3); //栅栏对象
//计算栅栏对象并输出
float fenceCost = poolRim.circumference() * FENCE_PRICE;
cout << "Fence Cost is $" <<fenceCost<< endl;
//计算过道造价并输出
float concreteCost = (poolRim.area() - pool.area()) * CONCRETE_PRICE;
cout << "Concrete Cost is $" << concreteCost << endl;
}
输入的是10 输出结果如图
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/018222821546111.png "#left")