gpt4 book ai didi

c++ - 类型转换泛型类型 C++

转载 作者:太空宇宙 更新时间:2023-11-04 15:19:28 25 4
gpt4 key购买 nike

我重载了 operator[]对于我的 DataStructure返回指示值的类,如下所示:

T& operator[](int i) {
return m_array[i];
}

但是当我遍历这些值时,我想按如下方式打印它们:

for (int i = 0, s = stack->size(); i < s; ++i) {
printf("%7i %5i\n", i, stack[i]);
}

自从我将通用 DataStructure 创建为整数 Stack(派生类)

stack = new Stack<int>(STACKSIZE);

但这行不通。我希望堆栈上的每个项目都是 int,但编译器说我不能类型转换 Stack<int>int ,即使我没有尝试对 Stack 进行类型转换!!!

我错过了什么?还有,我不能用

printf("%7i %5i\n", i, (int)stack[i]);

因为某些原因它“不是”整数类型。

最佳答案

如果stack是指向 Stack<int> 的指针, 然后 stack[i]不调用堆栈的 operator[] .它将指针视为指向数组第一个元素的指针,并尝试索引到该数组。要么不要让它成为一个指针:

Stack<int> stack(STACKSIZE);

或取消引用指针:

(*stack)[i]

关于c++ - 类型转换泛型类型 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22704779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com