直接看题吧:
第一题
输入圆的半径和圆柱的高,依次输出圆周长、圆面积、圆柱体积(π取 3.14)。
#include<iostream>
using namespace std;
class cylinder
{
public:
cylinder() :PI(3.14)
{
cout << "请输入半径" << endl;
cin >> cyl_radius;
cout << "请输入高" << endl;
cin >> cyl_height;
}
void cyl_out()
{
cout << "圆柱的体积:" << PI * cyl_radius * cyl_radius * cyl_height << endl;
cout << "圆的面积:" << PI * cyl_radius * cyl_radius << endl;
cout << "圆的周长:" << PI * cyl_radius * 2 << endl;
}
protected:
const double PI;
double cyl_radius;
double cyl_height;
};
int main()
{
cylinder cyl;
cyl.cyl_out();
return 0;
}
需要注意到的是const 修饰的类的成员,它的初始化只能采用构造函数(初始化列表)的方式,这里也可以不使用这种方式,在这里仅仅只是为了学习const以及构造函数。
第二题
定义一个 Point 类,其属性包括点的坐标,提供计算两点之间距离的方法.
这题使用类的友元函数访问类的私有成员。
#include<iostream>
using namespace std;
class Point
{
public:
Point(string m = "")
{
cout << "输入" << m << "点的x坐标" << endl;
cin >> x;
cout << "输入" << m << "点的y坐标" << endl;
cin >> y;
cout << m << "点的坐标为(" << x << "," << y << ")" << endl;
}
friend double distance(Point& A, Point& B)
{
double distance_hor = A.x - B.x;
double distance_ver = A.y - B.y;
double distance_pt = sqrt(distance_hor * distance_hor + distance_ver * distance_ver);
return distance_pt;
}
private:
double x;
double y;
};
int main()
{
Point A("A");
Point B("B");
cout << "两点间的距离:" << distance(A, B) << endl;
}
关于友元函数:
