帮我看看这段C++程序啊,有几句不懂

来源:百度知道 编辑:UC知道 时间:2024/09/22 01:04:50
一个圆形游泳池,现在须在周围建一个圆形过道,并在其四周围上栅栏。栅栏价格35元/米,过道造价20元/平方米。过道宽度3米。输入半径,编程求造价。

程序如下:我把有问题的语句标出来请大家帮忙

#include<iostream.h>

const float PI=(float)3.14159;
const float FencePrice=35.;
const float ConcretePrice=20.;

class Circle
{
public:
Circle(float r); 为什么要用这个构造函数
float Circumference();
float Area();
private:
float radius;
};

Circle::Circle(float r):radius(r){} 这句话到底是干什么的,解释一下。为什么中间还有个冒号?
float Circle::Circumference()
{return 2*PI*radius;}
float Circle::Area()
{return PI*radius*radius;}

void main()
{
float radius;
float FenceCost,ConcreteCost;
cout<<"Enter the radius of the pool: ";
cin>>radius;
Circle Pool(radius);
Circle PoolRim(radius+3);

FenceCost=PoolRim.Circumference()*FencePrice;
cout<<"Fencing Cost is $"<<FenceCost&l

Circle(float r); 为什么要用这个构造函数
这个是声明构造函数而已,不是调用。
因为Circle类只有一个变量radius,并且是私有成员,不写构造函数又没有其他函数给radius赋值啊

Circle::Circle(float r):radius(r){} 这句话到底是干什么的,解释一下。为什么中间还有个冒号?
其实这个就是用来赋值的
radius(r)等价于radius=r

这种写法是简单的赋值方法,是C++特有的,记住就是了

Circle(float r);
这个构造函数 是在用主函数测试时 利用构造函数建立对象 可以直接对 对象进行初始化 即是给对象赋值 可以使程序简洁
Circle::Circle(float r):radius(r){}
这个是对构造函数的声明 函数的声明有2 中 一种是类外 一种是类内
这个是类外声明的情况
基本形式是 类名::函数名 (参数) :初始化列表

不知道我的问答能不能榜上你的忙

Circle::Circle(float r):radius(r){}
Circle::Circle(float r){radius=r;}
上下一样的,写法不一样而已

Circle(float r); 只是用来审明的,
Circle::Circle(float r):radius(r){}的意思是把radius赋值给r的,:的意思我有点忘记了,好像是一个运算符吧

学习