龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

使用VC开发程序经验谈(二)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
二:建立几何元素对象类: AutoCAD字体轮廓由圆弧和多义线(几个点顺次连接形成的一条曲线)的集合构成,圆弧和多义线具有一些相同的属性和方法,比如绘制,如果进一步开发,还

二:建立几何元素对象类:

       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;

精彩图集

赞助商链接