分享

VC++ (三)虚函数与重载

 为幸福而奋斗66 2015-06-25

VC++中如果类包含有纯虚函数,则类必须声明为抽象类,如下:

class CGDIElement abstract    //类包含纯虚函数时,必须定义为抽象类
{
public:
 CGDIElement(void);            //构造函数不能是虚函数,派生类继承方式见后

 virtual ~CGDIElement(void);  //析构函数如果要让派生类继承,必须定义为虚函数

 virtual void Init(void) = 0; //纯虚函数
};

派生类的定义如下:

class CGDILine : public CGDIElement
{
public:
 CGDILine(void) 
:CGDIElement() //调用基类的构造函数

 {  };
 virtual ~CGDIElement(void);   //派生类的虚析构函数能够自动调用基类的析构函数
 virtual void Init (void){};   //基类的纯虚函数在派生类中重载,不能执行基类的纯虚函数,因为其不存在。 

}; 

第三级派生类定义如下:

class CGDIDotLine : public CGDILine
{
public:

 virtual void Init (void)   

 { CGDILine::Init();         //派生类必须显性调用基类的函数

  };
};

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多