C++ point类

1、类中要有公有成员、私有成员。数据成员要有子对象、静态数据成员。成员函数要有至少二个普通成员函数,一个静态成员函数,一个友元函数,一个常成员函数。2、构造函数要重载无参... 1、类中要有公有成员、私有成员。数据成员要有子对象、静态数据成员。成员函数要有至少二个普通成员函数,一个静态成员函数,一个友元函数,一个常成员函数。
2、构造函数要重载无参、有参、复制构造函数,析构函数。
3、要实现单继承或多继承。
4、在程序中要对子对象、静态数据成员初始化,要调用普通成员函数、静态成员函数、友元函数、常成员函数。
展开
 我来答
yidetion
推荐于2017-10-08 · 超过19用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:49.4万
展开全部
#include <iostream>
using namespace std;

struct Position{
int x;
int y;
Position(int x=0,int y=0):x(x),y(y){}
};

class Point{
Position* p;
static int total;
public:
Point(){p=new Position;++total;}
Point(int x,int y){p=new Position(x,y),++total;}
Point(const Point& pt){
p=new Position(pt.p->x,pt.p->y);
++total;
}
~Point(){delete p;}

static void showtotal(){cout<<"total:"<<total<<endl;}

void showx(){
cout<<"x="<<p->x<<endl;
}
void showx()const{
cout<<"x="<<p->x<<endl;
}
void showy(){
cout<<"y="<<p->y<<endl;
}
void showy()const{
cout<<"y="<<p->y<<endl;
}
void showpoint(){
cout<<"x="<<p->x<<endl;
cout<<"y="<<p->y<<endl;
}
void showpoint()const{
cout<<"x="<<p->x<<endl;
cout<<"y="<<p->y<<endl;
}

friend ostream& operator<<(ostream& os,const Point& pt){
os<<"x:"<<pt.p->x<<endl;
os<<"y:"<<pt.p->y<<endl;
return os;
}
};
int Point::total=0;

class Line:public Point{
Position p2;
public:
Line(int x=0,int y=0,int i=0,int j=0):Point(x,y),p2(x,y){}
void showp(){
cout<<p2.x<<p2.y<<endl;
}
};

int main()
{
Point p1,p2(2,4);
const Point cp(4,6);
cout<<p1<<p2<<endl;//调用operator<<()
Point::showtotal();
p1.showpoint();
p2.showpoint();
cp.showpoint();
return 0;
}

//vc6.0中测试通过
更多追问追答
追问
怎么不是类得继承呀 不过你的答案很好了 要是没有更好的我就把分给你 非常感谢
追答
这是时间问题啦,我是现场写的,非要继承吧POSITION改成类,再稍微改下就可以了,我这是为了显示更高级的东西嘛,你要得话我给你改改吧.
今晚没时间了,如果需要,明晚看又没有时间.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式