讨论_类,子类,虚函数,纯虚函数

来源:互联网 发布:什么短信软件好用 编辑:程序博客网 时间:2024/06/03 15:53

类:

class ListPaint {public:        void test();protected:protected:};


子类:

class List1 : public ListPaint{public:void test();};

子类调用父类

#include "stdafx.h"#include "List1.h"void List1::test(){AfxMessageBox("This is List1 Class");ListPaint::test();}


虚函数

class ListPaint {public:       virtual void test();protected:protected:};


纯虚函数

class ListPaint {public:virtual void test()=0;protected:protected:};

虚函数类 与 类的区别

再用指针调用的过程中,类的继承类调用函数为父类函数,虚函数的继承类调用的是子类函数

例如:


class ListPaint {public:        void test(){AfxMessageBox("This is Class ListPaint");}};class List1 : public ListPaint{public:void test(){AfxMessageBox("This is Class List1");}};void main(){ListPaint *list=new List1;list.test();}

结果,对话框显示 This is Class ListPaint

将上例ListPaint中的void test()改为 virtual void test()后

结果:对话框显示 This is Class List1

虚函数 与 纯虚函数 的区别

虚函数可以实例化,而纯虚函数只允许使用指针

class ListPaint {public:        virtual void test(){AfxMessageBox("This is Class ListPaint");}};

可以实例化 ListPaint list;

class ListPaint {public:        virtual void test()=0{AfxMessageBox("This is Class ListPaint");}};

如果实例化ListPaint list;

系统会报错,但可以使用ListPaint *list;创建