gpt4 book ai didi

c++ - 将值传递给模板化对象

转载 作者:行者123 更新时间:2023-11-28 07:23:26 25 4
gpt4 key购买 nike

我正在用数组重新创建 vector 类,并且在将值传递给我创建的对象以测试函数是否正常工作时出现了一个小错误

这是代码

template<typename T>
class stack
{
public:
void pop()
{
S1.pop_back();
}
void push(T &e)
{
S1.push_back(e);
}
T& top()
{
counter = S1.Counter();
cout << counter;
return S1[counter];
}
bool empty()
{
if (S1.Counter() == 0)
{
return true;
}
else
{
return false;
}
}
private:
sean<T> S1;
int counter;
};

对象调用

int main(int argc, char *argv[])
{
stack<int> S1;
S1.push(1);


return 0;
}

在主函数中,我只是创建了一个“堆栈”对象 S1 并想调用 push(T&e) 函数,但出现了错误

Initial value of reference to non-const must be an Ivalue

这可能很简单,但我们将不胜感激。谢谢。

最佳答案

您正在尝试传递一个临时但普通引用只能绑定(bind)变量。这将解决问题:

void push(T const& e)
{
S1.push_back(e);
}

关于c++ - 将值传递给模板化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19084282/

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