【发布时间】:2009-12-26 19:08:04
【问题描述】:
我想使用 c++ 模板制作一个通用堆栈。 stack的push方法的原型由下式给出 无效推送(t* ptr) 其中 t 是模板参数。现在指针 ptr 可能指向一个整数或整数数组,它可能指向单个字符或字符数组,它可能指向单个双精度数或双精度数组等。 我想要的是,如果 ptr 指向一个整数,我想在 push 方法中分配内存,那么我需要根据整数的大小分配内存,如果 ptr 指向整数数组,那么我需要分配内存根据数组的大小。对于其他原始数据类型也是如此 我的问题是如何确定这个pointe ptr 是指向一个数组还是一个简单的变量。如果无法发现指针指向数组或简单变量,那么建议一种技术,我可以通过该技术编写此堆栈的 push 方法。
【问题讨论】:
-
您是否希望您的堆栈包含推送内容的副本?还是会获得传递给它的指针的所有权?
-
我想在堆栈中有东西的副本