从函数返回模板
Returning Template from function
我试图从函数返回指向模板的指针,但是我得到了错误:
error C2440: 'return' : cannot convert from 'node<T>*' to 'Customer*'
这很奇怪,因为我知道模板肯定包含客户对象。
返回错误的类如下:
template <class T>
T* l_list<T>::search(int id)
{
int i = 0;
node<T> *ptr = head;
while (id != ptr -> data.getId())
{
ptr = ptr -> next;
i++;
if (id = ptr -> data.getId())
{
return ptr;
}
}
}
我这样做来调用它:
cin >> id;
Customer* ptr = customers.search(id);
ptr -> createAccount();
甚至有可能做到这一点吗?
你的函数被声明为:
T*
但是您返回的是以下类型:
node<T>*
您需要使返回类型与函数类型保持一致。
函数 search
被声明为返回 T*
,但你执行return ptr;
,其中 ptr
是一个node<T>*
。那行不通。也许你想要像return ptr->data;
这样的东西?
相关文章:
- 为什么将值返回函数传递给重载=运算符对运算符函数有效,而对其他运算符无效
- 编译器警告:执行到达值返回函数的末尾而不返回值
- 接收和返回函数指针的函数指针的类型?
- 我的动态链接队列在同一输出流中调用时不正确地输出三个返回函数
- C++函数链返回函数
- 返回函数指针的函数的签名
- 由于值返回函数中的错误,程序无法编译.它说未声明的标识符
- 非常量引用返回函数在常量值返回函数上用作 r 值
- 如何在 C++ 中从 void 返回函数访问变量
- 返回函数中带有 2 个可选 ctor 的对象
- 如何在 c++ 中返回函数的结构向量
- 返回 C++ 函数中的引用
- 使用向量时,当返回函数更改时,无法看到输出
- 如何在递归中使用返回函数
- 返回函数模板的类型C++作为第二个模板参数
- 为什么静态指针返回函数中有一个"静态"键?
- 递归返回函数,在特殊情况下不返回
- 从类返回函数
- 从类成员函数返回函数指针
- 从返回函数中推断不存在的模板参数