c++程序中的一个小疑问

来源:百度知道 编辑:UC知道 时间:2024/05/30 02:29:05
#include<iostream>
#include<cstring>
using namespace std;
//纯虚函数 虚基类/抽象类:包含虚函数的类,只作为基类来使用,不能声明类的对象
//派生类必须重载虚函数,或者继续声明为虚函数
class shape{
public:
virtual double area()const=0;//纯虚函数,无法为其提供一个实现版本(也就是说没有函数体)
//
};
class point{
double x,y;
public:
point(double x0=0.0,double y0=0.0):x(x0),y(y0){}
double getx()const{return x;}
double gety()const{return y;}
};
class rectangle:public shape{
point ul;//左上角顶点
point dr;//右下角顶点
public:
rectangle(point p1,point p2):ul(p1),dr(p2){}
virtual double area()const{
return (dr.getx()-ul.getx())*(dr.gety()-ul.gety());
}
point getupleft()const{return ul;}
point getdownright()const{return dr;}
};
class circle:public shape{
point cen;//圆心
double rad;//半径
public:
circle(point c,double r):cen(c),rad(r){};
virtual double area()const
{return 3.1415926*rad*rad;}
poin

可以将rectangle r(point(2.0,2.0),point(8.0,8.0));
改成:point p1(2.0,2.0);
point p2(8.0,8.0);
rectangle r(p1,p2);
不能写成point p1(2.0,2.0),point p2(8.0,8.0);的形式
r(p1,p2)括号里的是实参,如果写成r(point p1(2.0,2.0),point p2(8.0,8.0))代表什么?point是p1,p2的类型,没有在实参里写类型的吧,除非是声明

对于变量要先定义后使用
你看看你的p1,p2是不是已经定义了的啊