主题:实现圆柱类Column的定义
hyh111
[专家分:0] 发布于 2010-04-16 17:33:00
圆柱类Column的定义
class Column
{
public:
Column(double x,double y,double r,double h);
~Column();
double area(); //求圆柱面积
double volumn(); //求圆柱体积
private:
double height; //高度
double radius; //半径
double x; //底面积圆心x的坐标
double y; //底面积圆心y的坐标
};
要求:
(1) 实现Column中的四个成员函数;
(2)增加一个友元函数,实现从键盘读取四个double类型的数据对类Column的对象进行赋值的功能;
(3)增加一个友元函数,实现将类Column的对象输出到屏幕的功能,输出信息包括对象的基本信息以及对象的面积和体积。
编程提示:
友元函数的声明:
void friend set(Column &t);
void friend print(Column &t);
回复列表 (共8个回复)
沙发
cxxcomp [专家分:2370] 发布于 2010-04-16 19:05:00
【友元函数的声明:】
【void friend set(Column &t);】
【void friend print(Column &t);】
实在很蹩脚。
这么做是否可以?
#include <iostream>
using namespace std;
const double _pi = 3.1415926;
class TColum
{
public:
friend ostream& operator<< (ostream&, TColum&);
friend istream& operator>> (istream&, TColum&);
TColum(double x = 0, double y = 0, double r = 0, double h = 0)
: _x(x), _y(y), _radius(r), _height(h) {}
~TColum() {}
double Area() const;
double Volumn() const;
protected:
private:
double _height;
double _radius;
double _x;
double _y;
};
inline
double TColum::Area() const
{
return _pi * _radius * _radius;
}
inline
double TColum::Volumn() const
{
return _height * Area();
}
inline
ostream& operator<< (ostream& os, TColum& colum)
{
os << "A Colum's x, y, area, volumn is " << std::endl;
os << "x == " << colum._x << std::endl;
os << "y == " << colum._y << std::endl;
os << "Area == " << colum.Area() << std::endl;
os << "Volumn == " << colum.Volumn() << std::endl;
return os;
}
inline
istream& operator>> (istream& is, TColum& colum)
{
std::cout << "please input x :" << std::endl;
is >> colum._x;
std::cout << "please input y :" << std::endl;
is >> colum._y;
std::cout << "please input radius: " << std::endl;
is >> colum._radius;
std::cout << "please input height: " << std::endl;
is >> colum._height;
return is;
}
int main(int, char **, char **)
{
TColum cl1, cl2;
cout << cl1 << endl;
cin >> cl2;
cout << cl2 << endl;
}
icl编译。
板凳
hyh111 [专家分:0] 发布于 2010-04-16 19:19:00
呵呵 忘了 是vc编译的 辛苦下!
3 楼
cxxcomp [专家分:2370] 发布于 2010-04-16 19:40:00
vc2003以上编译。一点问题都没有。try again please.....
没觉得辛苦,只觉得有些啰嗦
4 楼
hyh111 [专家分:0] 发布于 2010-04-16 21:11:00
高手啊 这个 我都没学 啊 看不懂啊
5 楼
cxxcomp [专家分:2370] 发布于 2010-04-16 22:27:00
谢谢鼓励和意见。
6 楼
hyh111 [专家分:0] 发布于 2010-04-17 00:49:00
能不能帮我改改啊
7 楼
cxxcomp [专家分:2370] 发布于 2010-04-17 00:55:00
[quote]能不能帮我改改啊
[/quote]
你要改成什么样的?麻烦给我说清楚你的意思好吗,代码没学过,话总可以说清楚
8 楼
hyh111 [专家分:0] 发布于 2010-04-17 12:23:00
还是不用了! 不过还是要谢谢你!
我来回复