抽象模板类的用途
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) 收藏 举报
浙公网安备 33010602011771号