追踪对象的追踪类的设计

来源:互联网 发布:网络综艺点击量排行榜 编辑:程序博客网 时间:2024/04/28 01:51
#include
using namespace std;

class ObjTrace{//追踪对象的类
private:
static int count;//静态数据成员,属于类本身不属于对象
int ct;//对象的编号
public:
ObjTrace():ct(++count){cout<<"Object"<<ct<<"constructed"<<endl;}
~ObjTrace(){cout<<"Object"<<ct<<"destroyed"<<endl;}
ObjTrace(const ObjTrace&obj):ct(++count){cout<<"Object"<<ct<<"constructed"<<endl;}
ObjTrace& operator=(const ObjTrace obj){return*this;}
};
int ObjTrace::count=0;//静态数据成员的初始化

class Point{
private:
ObjTrace objtr;//引用ObjTrace对象,即使用ObjTrace的方式
int x,y;
public:
Point(int a,int b):x(a),y(b){}
Point(const Point&obj):objtr(obj.objtr),x(obj.x),y(obj.y){}
Point& operator=(const Point& obj)
{
objtr=obj.objtr;
x=obj.x;
y=obj.y;
return *this;
}
~Point(){}
};
int main()
{
Pointpt[3]={Point(1,2),Point(3,4),Point(5,6)};//对象数组及其初始化方式
Point p1=pt[0];
Point p2=pt[1];
p1=p2;
return 1;
}

追踪对象的追踪类的设计

原创粉丝点击