c++的模板继承

来源:互联网 发布:经典传奇淘宝记老油瓶 编辑:程序博客网 时间:2024/05/01 13:06


       原创文章,转载请注明出处,谢谢!       
       作者:清林,博客名:飞空静渡

 

我们有这么一组这样的类,其类继承关系如下图:

我们先把base, man, 和woman的类写出来,test.h文件

 

如果我们要写一个男教师的类manTeacher的话就得从man上继承,同理womanTeacher就得从woman上继承,这样我们就得写下两个类了,但这里我们可以通过模板来简化类的写,如下(在test.h文件下面添加):

 

 

我们测试一下,新建一个cpp文件,main.cpp

 

在vc上可以直接编译,在g++上,要添加-fpermissive,添加这个可以让模板代码由出错降为警告,从而编译通过,vc可以直接编译通过。

编译:

g++ -g -Wall -fpermissive main.cpp

运行: ./a.out
base function!
I'am a man, id is 5
I'am a man teacher!

 

我们再次修改如下:

 

编译输出:./a.out
base function!
I'am a man, id is 3
I'am a man teacher

 

再次修改main.cpp

 

编译输出:./a.out
base function!
I'am a man, id is 3
base function!
I'am a woman, id is 5
I'am a man teacher!
I'am a woman teacher!