实验二 成员函数.doc
文本预览下载声明
实验二 面向对象编程
实验目的:
掌握类与对象的定义方法,成员函数的实现与调用方法,领会类实现数据隐藏与封装的原理。
实验内容:
编写Circle类,有数据成员Radius,成员函数get_area()用于计算面积,get_perimeter()用于计算周长,disp( )用于显示面积和周长,set_radius()设置半径,get_radius()获取半径。
完善必要的构造函数,构造一个Circle的对象进行测试,对构造函数和析构函数的调用情况进行分析。
#include stdafx.h
#includeiostream
#includeconio.h
using namespace std;
const double P=3.141593;
class Circle
{ float radius;
public:
Circle(float r);//构造函数
void set_radius(float r);
float get_area();
float get_perimeter();
float get_radius();
void disp();
~Circle(){}//调用析构函数
};
Circle::Circle(float r)//调用构造函数
{radius=r;}
void Circle::set_radius(float r)
{radius=r;}
float Circle::get_radius()
{return radius;}
float Circle::get_area()
{return P*radius*radius;}
float Circle::get_perimeter()
{return P*radius*2;}
void Circle::disp()
{
cout圆的面积:get_area()endl圆的周长:get_perimeter()endl;
}
int main()
{
float R;
cout输入半径:;
cinR;
Circle A(R);
A.set_radius(R);
cout半径:A.get_radius()endl;
A.disp();
getch();
return 0;
}
编写圆柱体类Cylinder,有数据成员Circlr对象和长度Len,
成员函数get_vol() 计算体积,
get_area()计算表面积。
完善必要的构造函数和拷贝构造函数,构造Cylinder的对象进行测试。对构造函数,拷贝构造函数和析构函数的调用情况进行分析。
#include stdafx.h
#includeiostream
#includeconio.h
using namespace std;
const double PI = 3.14159;
//Circle类
class Circle
{
public:
Circle(double r) {radius=r;} //构造函数
Circle(Circle c) {radius=c.radius;}//调用圆的拷贝构造函数
double getArea(){ return PI*radius*radius;}//计算圆面积
double getGirth(){return 2*PI*radius;}//计算圆的周长
~Circle(){}//调用圆的析构函数
private:
double radius;//圆的半径
};
//Cylinder类
class Cylinder
{
public:
Cylinder(Circle c1, double Len);
Cylinder(Cylinder c);
double get_Vol(){return Len*A.getArea();} //计算体积
double get_area(){ return A.getArea()+Len*A.getGirth();}//计算面积
~Cylinder(){}//调用圆柱体的析构函数
private:
Circle A;
double Len;//圆柱的高
};
Cylinder::Cylinder(Circle c1,double h):A(c1) //调用圆柱体的构造函数
{
Len=h;
}
Cylinder::Cylinder(Cylinder a):A(a.A)//调用圆柱体的拷贝函数
{
Len=a.Len;
}
//测试程序
int main()
{
double R,h;
显示全部