| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1573 人关注过本帖
标题:c++类的组合已知两点的矩形求面积
只看楼主 加入收藏
一天一天谎言
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-3-3
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
c++类的组合已知两点的矩形求面积
#include "cmath"
#include "iostream"
using namespace std;
class CPoint
{
public:
    CPoint(){cout<<"CPoint类的无参构造函数被调用"<<endl;}
    CPoint(int xx,int yy);
    CPoint(CPoint &p);
    ~CPoint(){cout<<"CPoint类的析构函数被调用"<<endl;}
    getx();
    gety();
private:
    int x;
    int y;
};
CPoint::CPoint(int xx,int yy)
{
    x=xx;
    y=yy;
    cout<<"CPoint类的有参构造函数被调用"<<endl;
}
CPoint::CPoint(CPoint &p)
{
    x=p.x;
    y=p.y;
    cout<<"CPoint类的复制构造函数被调用"<<endl;
}
CPoint::getx()
{
    return x;
}
CPoint::gety()
{
    return y;
}
class CRect
{
public:
    CRect(){cout<<"CRect类的无参构造函数被调用"<<endl;}
    CRect(CPoint xp1,CPoint xp2);
    CRect(int x,int y,int m,int n);
    CRect(CRect &1);
    ~CRect(){cout<<"CRect类的析构函数被调用"<<endl;}
    getArea();
private:
    int x;
    int y;
    int m;
    int n;
    CPoint p1,p2;
    int Area;
};
CRect::CRect(CPoint xp1,CPoint xp2):p1(xp1),p2(xp2)
{
    cout<<"CRect类的有参构造函数被调用"<<endl;
    int x=static_cast<int>(p1.getx()-p2.getx());
    int y=static_cast<int>(p1.gety()-p2.gety());
    int Area=x*y;
}
CRect::CRect(int x,int y,int m,int n)
{
    this->x=x;
    this->y=y;
    this->m=m;
    this->n=n;
    cout<<"CRect类的有4参构造函数被调用"<<endl;
}
CRect::CRect(CRect &1):p1(1.p1),p2(1.p2)
{
    cout<<"CRect类的复制构造函数被调用"<<endl;
    Area=1.Area;
    x=1.x;
    y=1.y;
    m=1.m;
    n=1.n;
}
CRect::getArea()
{
    return Area;
}
void main()
{   
    int a,b,c,d;
    cout<<"input a,b,c,d:";
    cin>>a>>b>>c>>d>>endl;
    CPoint myp1(a,b),myp2(c,d);
    CRect rect1,rect2(myp1,myp2),rect3(a,b,c,d),rect4(rect2);
    cout<<"rect1面积为:"<<rect1.getArea()<<endl;
    cout<<"rect2面积为:"<<rect2.getArea()<<endl;
    cout<<"rect3面积为:"<<rect3.getArea()<<endl;
    cout<<"rect4面积为:"<<rect4.getArea()<<endl;
}
搜索更多相关主题的帖子: private include public 
2015-03-15 15:17
一天一天谎言
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-3-3
收藏
得分:0 
运行不了,求解
2015-03-15 15:17
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
不按游戏规则出牌  错误太多  重写吧

DO IT YOURSELF !
2015-03-16 08:15
一天一天谎言
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-3-3
收藏
得分:0 
实在写不出来了
2015-03-16 10:12
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
程序代码:
#include <iostream>

using namespace std;

class wp
{
public:
     wp(int a1,int b1,int a2,int b2);
    ~wp();
    int geta();
    int getb();
    int gets();
private:
    int a;
    int b;
};
wp::~wp()
{
}
wp::wp(int a1,int b1,int a2,int b2)
{
    if(a2-a1>0) a=a2-a1; else a=a1-a2;
    if(b2-b1>0) b=b2-b1; else b=b1-b2;
}
int wp::geta()
{
    return a;
}
int wp::getb()
{
    return b;
}
int wp::gets()
{
    return a*b;
}
int main()
{   
      wp test(5,15,31,36);
    int s=test.gets();
    cout<<"s="<<test.geta()<<"*"<<test.getb()<<"="<<s<<endl;
    return 0;
}

DO IT YOURSELF !
2015-03-17 08:02
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:10 
先把CPoint类里面定义的getx()和gety()改成int getx()和int gety()
再把
CRect::CRect(CPoint xp1,CPoint xp2):p1(xp1),p2(xp2)
{
    cout<<"CRect类的有参构造函数被调用"<<endl;
    int x=static_cast<int>(p1.getx()-p2.getx());
    int y=static_cast<int>(p1.gety()-p2.gety());
    int Area=x*y;
}
变成
CRect::CRect(CPoint xp1,CPoint xp2)
{
    cout<<"CRect类的有参构造函数被调用"<<endl;
    int x=abs(xp1.getx()-xp2.getx();//添加头文件cstdlib
    int y=abs(xp1.gety()-xp2.gety();
    int Area=x*y;
}
再把
CRect::CRect(CRect &1):p1(1.p1),p2(1.p2)
{
    cout<<"CRect类的复制构造函数被调用"<<endl;
    Area=1.Area;
    x=1.x;
    y=1.y;
    m=1.m;
    n=1.n;
}
变成
CRect::CRect(CRect &r)
{
    cout<<"CRect类的复制构造函数被调用"<<endl;
    Area=r.getArea();
    x=r.x;            //这里还需要把你的CRect类里的x,y,m,n几个变量改到public下面
    y=r.y;
    m=r.m;
    n=r.n;
}
大概看了一下就有这些问题。没有细看,不敢保证这几处改了之后就能运行了。自己再检查一下吧。
2015-03-19 19:16
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
另外你应该整理一下程序的逻辑。想想到底用哪一步来干什么。比如CRect重载的构造函数实现功能就有些乱。有些在算面积,有的又不算。
2015-03-19 19:18
快速回复:c++类的组合已知两点的矩形求面积
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.068274 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved