C++:设计一个堆栈的类模板Stack,在模板中用类型参数T表示栈中存放的数据,用非类型参数MAX
答案:1 悬赏:0 手机版
解决时间 2021-03-21 11:28
- 提问者网友:火车头
- 2021-03-20 16:21
C++:设计一个堆栈的类模板Stack,在模板中用类型参数T表示栈中存放的数据,用非类型参数MAX
最佳答案
- 五星知识达人网友:青尢
- 2021-03-20 18:01
1、任何容器都只能放相同的数据类型;2、如果数据类型不相同,只能想个法让这些数据类型由不同变得相同;3、一般的法就是继承,定义一个父类,其它数据类型继承这个父类。上代码:enumsubClassType{typeB,typeC,};classClassA{public:subClassTypetype;};classClassB:publicClassA{inta;public:ClassB(){ClassA::type=typeB;a=10;}intfunOut(){returna;}};classClassC:publicClassA{floata;public:ClassC(){ClassA::type=typeC;a=1.1;}floatfunOut(){returna;}};voidfun(){ClassB*b=newClassB();ClassC*c=newClassC();ClassA*array[]={b,c};//把子类的对象赋值给父类的指针,然后保存在数组里,栈也是一样的。for(inti=0;itype==typeB)//判断类型,然后转换成子类指针,就能调用子类的成员了。{printf("a=%d",((ClassB*)pA)->funOut());}elseif(pA->type==typeC){printf("a=%f",((ClassC*)pA)->funOut());}}}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯