鱼C论坛

 找回密码
 立即注册
查看: 2007|回复: 4

[已解决]问题写在//后面了,实在搞不懂,求助

[复制链接]
发表于 2018-5-8 21:08:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <iostream>
using namespace std;
class Point {
public:
        Point()  {x = 0; y = 0; }
        Point(double xv,double yv) {x = xv;y = yv;}
        Point(Point& pt) { x = pt.x;  y = pt.y; }
        double getx() { return x; }
        double gety() { return y; }
        double Area() { return 0; }
        void Show() { cout<<"x="<<x<<' '<<"y="<<y<<endl; }
private:
        double x,y;
};
class Rectangle:public Point
{
        double length,width;
public:
        Rectangle(double x,double y, double l,double w):
          Point(x,y){length=l,width=w;}
          double getl(){return length;}
          double getw(){return width;}
          double Area(){return width*length;}
          double Perimeter(){return 2*(width+length);}
          void Show(){ cout<<"Top is"<<" "<<getx()<<endl;
                       cout<<"Left is"<<" "<<gety()<<endl;
                                   cout<<"Length is"<<" "<<getl()<<endl;
                                   cout<<"Width is"<<" "<<getw()<<endl;
                                   cout<<"Perimeter is"<<" "<<Perimeter()<<endl;
                                   cout<<"Area is"<<Area()<<endl;
                     }
          void  position(Point &pt)
          {
                  double x1=getx(); double y1=gety();
                  cout<<x1<<" "<<y1<<endl;
                 Point:: Point(pt);
                  cout<<getx();//[font=微软雅黑]为什么这时候的x、y的值没有改变
                  if(getx()<x1||gety()>y1||getx()>x1+length||gety()<y1-width)
                          cout<<" 该点在图形外 "<<endl;
                  if((getx()==x1&&gety()==y1)||(getx()==x1&&(gety()==y1-width))||((getx()==x1+length)&&gety()==y1)||((getx()==x1+length)&&(gety()==y1-width)))
                          cout<<"该点在图形上"<<endl;
                  else
                          cout<<"该点在图形内"<<endl;
          }
};
int main()
{
        double x,y;
        Rectangle test(1,2,3,4);
        test.Show();
        cout<<"请输入你想测试的点: x,y"<<endl;
        cin>>x>>y;
        Point test1(100,100);
        test1.Show();
        test. position(test1);
        system("pause");
        return 0;
}
最佳答案
2018-5-9 15:01:38
机械之心max 发表于 2018-5-9 14:51
Point:: Point(pt);
这个不是改变了x,y的值了吗?

你生成的这个point对象又没有拿来用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-8 21:14:06 From FishC Mobile | 显示全部楼层
getx不是取出x的值吗?为什么会变?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-9 14:51:52 From FishC Mobile | 显示全部楼层
BngThea 发表于 2018-5-8 21:14
getx不是取出x的值吗?为什么会变?

Point:: Point(pt);
这个不是改变了x,y的值了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-9 15:01:38 | 显示全部楼层    本楼为最佳答案   
机械之心max 发表于 2018-5-9 14:51
Point:: Point(pt);
这个不是改变了x,y的值了吗?

你生成的这个point对象又没有拿来用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-9 15:49:26 From FishC Mobile | 显示全部楼层
BngThea 发表于 2018-5-9 15:01
你生成的这个point对象又没有拿来用

我明白了,多谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-17 10:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表