使用VC开发程序经验谈(二)
二:建立几何元素对象类:
AutoCAD字体轮廓由圆弧和多义线(几个点顺次连接形成的一条曲线)的集合构成,圆弧和多义线具有一些相同的属性和方法,比如绘制,如果进一步开发,还可能有相关的线型和颜色等等属性,要把这些公共的属性和方法抽象出来,形成基类。
首先形成三维点结构以及对它的封装:
struct READSHX_API MYXYZ
{
double x;
double y;
double z;
};
class READSHX_API CMyXYZ:public MYXYZ
{
public:
CMyXYZ(){x=0;y=0;z=0;};
CMyXYZ(MYXYZ xyz){this->x=xyz.x;this->y=xyz.y;this->z=xyz.z;};
CMyXYZ(double x,double y,double z){ this->x=x;this->y=y;this->z=z;};
virtual ~CMyXYZ(){};
operator MYXYZ() const{return MYXYZ(*this);};
const CMyXYZ& operator =(MYXYZ &xyz){this->x=xyz.x;this->y=xyz.y;this->z=xyz.z;return *this;};
};
点数据用double数来表示并且使用三维点便于日后该结构体的重用性更广泛,而从MYXYZ结构体派生出类CMyXYZ可以方便地对MYXYZ结构进行管理,比如所有参数中使用MYXYZ结构体的函数,都可以直接应用CMyXYZ类对象代替,CMyXYZ(MYXYZ xyz)声明了该类的拷贝构造函数,使得两个CMyXYZ类对象能够互相直接赋值,比如:
MYXYZ xyz1;
xyz1.x=0;
xyz1.y=1;
xyz1.z=2;
CMyXYZ xyz2=xyz1;
- 上一篇:使用VC开发程序经验谈(二 续)
- 下一篇:VC实现屏幕变暗效果