C++:设计一个堆栈的类模板Stack,在模板中用类型参数T表示栈中存放的数据,用非类型参数MAX
C++:设计一个堆栈的类模板Stack,在模板中用类型参数T表示栈中存放的数据,用非类型参数MAXSIZE代表栈的大小。实现栈元素的入栈和出栈。在main函数中定义Sta...
C++:设计一个堆栈的类模板Stack,在模板中用类型参数T表示栈中存放的数据,用非类型参数MAXSIZE代表栈的大小。实现栈元素的入栈和出栈。在main函数中定义Stack<int,5>和Stack<char,5>,测试该类模板。
展开
1个回答
2016-06-05
展开全部
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());}}}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询