抽象模板类的用途

 1 #include "dialog.h"
 2 #include <QApplication>
 3 #include<QPushButton>
 4 #include<QLabel>
 5 #include<QLineEdit>
 6 #include<QDebug>
 7 
 8 //模板可以让类与数据类型无关,泛型的概念
 9 //多态,一个接口,可以无限拓展,实现软件的可定制可拓展
10 
11 template <class T>
12 class  showclass//抽象模板类
13 {
14 public:
15     T *p;
16     showclass()
17     {
18         p=new T;
19     }
20     ~showclass()
21     {
22         delete p;
23     }
24     virtual void show()=0;//纯虚函数
25 };
26 
27 class mydialog:public showclass<Dialog> //类的继承
28 {
29   public:
30     void show()
31     {
32         p->show();
33     }
34 
35 
36 
37 };
38 
39 class mydialognew :public showclass<QPushButton>
40 {
41 public:
42     void show()
43     {
44        qDebug()<<"hello world";
45         p->show();
46     }
47 
48 };
49 
50 template <class T>
51 class runclass:public showclass<T>
52 {
53 public:
54   void show()
55   {
56       p->show();
57   }
58 
59 
60 };
61 int main(int argc, char *argv[])
62 {
63     QApplication a(argc, argv);
64 
65     showclass<Dialog>  *p = new runclass<Dialog>;
66     p->show();
67 
68 
69 
70     return a.exec();
71 }
72 
73 //--------------------------------------------------------------
74 
75 int main(int argc, char *argv[])
76 {
77     QApplication a(argc, argv);
78 
79     showclass<QPushButton>  *p = new mydialognew;
80     p->show();
81 
82 
83     return a.exec();
84 }

 

posted on 2015-06-12 14:43  Dragon-wuxl  阅读(122)  评论(0)    收藏  举报

导航