注册 登录
编程论坛 C++教室

哪位大虾能帮忙解决下!!!

ymzhaojian 发布于 2009-12-26 08:39, 584 次点击
设计一个Point类,这个类描述屏幕上一个点的位置,即有两个数据成员x,y分别来表示点的横坐标和纵坐标。
1、    定义带缺省参数的构造函数初始化Point类的对象,并输出信息“初始化点类的一个对象”。
2、    定义析构函数,输出信息“回收点类对象的内存空间”。
3、    定义成员函数Distance,用于计算两点之间的距离。
4、    定义成员函数show,输出一个Point类对象的坐标信息。
从Point类派生出一个Rectangle(矩形)类,Rectangle类有新的数据成员H、W、Area分别表示矩形的长、宽和面积。
1、    定义带缺省参数的构造函数初始化Rectangle类的对象,并输出信息“初始化矩形类的一个对象”。
2、    定义析构函数,输出信息“回收点矩形类对象的内存空间”。
3、    定义复制构造函数,用一个已存在的Rectangle类的对象去初始化另一个同类的对象。
4、    定义成员函数Area,用于求矩形的面积。
5、    定义Rectangle类的一个友元函数来重载“+”运算符,计算两个矩形的面积之和。
6、    定义成员函数show,输出一个Rectangle类对象的相关信息。
7、    使用赋值兼容规则,当用基类的对象调用show函数时,调用的是派生类的show函数。
main函数自己定义,但是要求以上功能都要有所体现。
2 回复
#2
yangliangbin2009-12-28 15:21
/*设计一个Point类,这个类描述屏幕上一个点的位置,即有两个数据成员x,y分别来表示点的横坐标和纵坐标。
1、    定义带缺省参数的构造函数初始化Point类的对象,并输出信息“初始化点类的一个对象”。
2、    定义析构函数,输出信息“回收点类对象的内存空间”。
3、    定义成员函数Distance,用于计算两点之间的距离。
4、    定义成员函数show,输出一个Point类对象的坐标信息。

从Point类派生出一个Rectangle(矩形)类,Rectangle类有新的数据成员H、W、Area分别表示矩形的长、宽和面积。
1、    定义带缺省参数的构造函数初始化Rectangle类的对象,并输出信息“初始化矩形类的一个对象”。
2、    定义析构函数,输出信息“回收点矩形类对象的内存空间”。
3、    定义复制构造函数,用一个已存在的Rectangle类的对象去初始化另一个同类的对象。
4、    定义成员函数Area,用于求矩形的面积。
5、    定义Rectangle类的一个友元函数来重载“+”运算符,计算两个矩形的面积之和。
6、    定义成员函数show,输出一个Rectangle类对象的相关信息。
7、    使用赋值兼容规则,当用基类的对象调用show函数时,调用的是派生类的show函数。
main函数自己定义,但是要求以上功能都要有所体现*/
#include<iostream>
#include<math.h>//包含sqrt()的头文件
using namespace std;
class Point//定义一个point类
{
public:
    Point()//缺省参数的构造函数
    {
        cout<<"初始化点类的一个对象!"<<endl;
        x=3;
        y=4;
    }
    ~Point()//析构函数
    {
        cout<<"回收点类对象的内存空间!"<<endl;
    }
    float distance;
    float Distance();//声明成员函数Distance
    void show();//声明成员函数sho
private:
    float x;
    float y;

};
class Rectangle:public Point//定义一个Rectangle类, 公有继承
{
public:
    Rectangle()//缺省参数的构造函数
    {
        cout<<"初始化矩形类的一个对象!"<<endl;
        H=5;
        W=6;
    }
    ~Rectangle()//析构函数
    {
        cout<<"回收矩形类对象的内存空间!"<<endl;
    }
    float area;
    float Area()//声明定义Area()
    {
        return H*W;
    }
   
    void show()
    {
        cout<<"H="<<H<<endl;
        cout<<"W="<<W<<endl;
        cout<<"矩阵的面积为:"<<area<<endl;
    }

private:
    float H;
    float W;

};
float Point::Distance()//定义成员函数Distance
{
    return sqrt(x*x+y*y);
}
void Point::show()//定义成员函数show
{
    cout<<"x="<<x<<endl;
    cout<<"y="<<y<<endl;
    cout<<"xy两点距离为:"<<distance<<endl;
}
int main()
{
    Point P;   
    P.distance=P.Distance();
    P.show();
   
    Rectangle R;
    R.area=R.Area();
    R.show();
    return 0;
}
#3
秀痘魔导士2009-12-28 16:13
以下是引用yangliangbin在2009-12-28 15:21:02的发言:

/*设计一个Point类,这个类描述屏幕上一个点的位置,即有两个数据成员x,y分别来表示点的横坐标和纵坐标。
1、    定义带缺省参数的构造函数初始化Point类的对象,并输出信息“初始化点类的一个对象”。
2、    定义析 ...
点应该是矩阵的成员变量,矩形没有理由继承点。


[ 本帖最后由 秀痘魔导士 于 2009-12-28 16:16 编辑 ]
1