gpt4 book ai didi

c++ - 模板类和重载 '=='

转载 作者:太空宇宙 更新时间:2023-11-04 12:22:10 24 4
gpt4 key购买 nike

我正在制作一些堆栈,其中我需要在某些函数中使用这种比较。但是我被卡住了,因为我不知道它的原型(prototype)应该是什么样子。

我在函数中有以下行。

template <class T>
void function1(T i)
{
if(i == 'a')
//do something
}

我想知道重载原型(prototype)应该是什么样子的?

编辑不知道是否值得一提,无论如何这是我迄今为止尝试过的模板

bool Stack<T>::operator==(char c) const
{
cout << c << endl; // just some test
}

无需评论此功能的工作原理,因为我还没有完成它。这部分会编译,但是我第一次调用这个函数的部分是在 Stack::push(T i) 中。编译器会提示没有匹配的函数。

 error: no match for 'operator==' in 'i == '#''

最佳答案

对于重载操作符,函数名是operator其次是实际运算符(operator),所以 operator== .它返回 bool 值。我不知道你的论点应该基于你的代码。大概 Stack<T>& ,如果它是自由函数,则需要其中两个进行比较,如果它是成员函数,则需要一个与 this 进行比较。

如果你有办法转换成 Stack<T> ,然后更喜欢一个自由函数,以便您可以转换左侧。

关于c++ - 模板类和重载 '==',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4392251/

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