模板适用于不同数据类型的相似算法。假设我做了一个基本数据类型的模板堆栈.
Stack<int> stck(10);
stck.Push(5);我会爆掉它..。
int x = stck.Pop();X是5,如果我再次调用pop,就没有条目,所以方法只返回0作为null。可能是别的什么,但不管怎样。
但是现在,如果我将模板类型更改为复合变量(结构类型--例如,RECT),并且堆栈为空,则不能返回0。它希望是一种RECT型的,但我已经没有了。如何使这种工作对基本数据类型和复合变量?例外?
发布于 2014-04-18 20:03:09
3个备选方案
使popping en emtpy堆栈未定义,并且不必担心它
抛出异常
返回默认构造的T() (数值类型恰好为0)
https://softwareengineering.stackexchange.com/questions/236330
复制相似问题