急!!!解释父类带参构造函数在主函数中初始化的方式

来源:百度知道 编辑:UC知道 时间:2024/05/24 22:07:51
如题~要简洁!

还有一题:有一圆环,其中小圆半径x,大圆半径y。编程定义一个circle 类,含有私有变量半径r,能够初始化r、计算圆面积。主函数中通过定义2个对象(大圆和小圆)来计算出圆环的面积。
答得全追加分
主要是题目的问题!

class CCircle
{
public:
CCircle(int r)
{
m_r = r ;
}
int GetAre(){ return 3.14*m_r*m_r;};
private:
int m_r ;
};

int main()
{
printf("请输入大小图的半径\n");
int x,y ;
scanf("%d %d",&x,&y);
CCircle r1(x),r2(y);
printf("环的面积为=%d\n",r1.GetAre() - r2.GetAre());
}

解释父类带参构造函数在主函数中初始化的方式
===============
根据参数的数量、类型选择不同的构造函数。
CCircle r1 ;//调用不带参数的构造函数。
CCircle r2(3) ;//调用带一个整数参数的构造函数。

题目问题请参看圆环类类的构造函数初始化方法。和main函数中的初始化方法,有注释。

代码:

// 定义圆形类
class CCircle
{
protected:
int m_r;

public:
// 构造函数,初始化圆半径
explicit CCircle( int r = 0 ) : m_r( r ){}
~CCircle(){}

public:
// 计算圆面积
double CalcArea() const
{
return ( 3.14159265 ) * m_r * m_r );
}
}

// 定义圆环类
class CCir