【发布时间】:2011-04-05 14:06:10
【问题描述】:
我想设计一个通用容器以用于链接列表(例如)。
我尝试使用 void* 作为元素,但是当我提供以下内容时失败了。
list.insert(5);
list.insert("Hello");
如果我在堆上分配成员并传递它工作的地址,但我该如何处理上面示例中使用堆栈变量的情况?
【问题讨论】:
-
你得到什么错误信息?
-
我尝试使用 memcpy,但如果传递了文字,我没有要复制的地址。以及如何将变量返回,因为 void 不是 C 中的类型,它总是 void*
-
我猜错误信息应该是“语法错误”,因为它被标记为 C,而 C 不支持成员函数。
-
模板是否越界?即:
List<int>与List<char*> -
@Lundin:上面的代码在 C 中是有效的语法,前提是
list是一个结构实例,list.insert是一个函数指针。
标签: c++ algorithm generics data-structures containers