如何返回一个指针(指向带有模板参数类型的方法中模板类型的对象)
How to return a pointer (to a object of template type within a method with a template argument type)
这个问题与模板无关。
template <typename T>
T* MyQueue<T>::pop()
{
T* object = nullptr;
//if (head != nullptr)
//{
// object = head->data;
// head = head->next;
//}
return *object;
}
这会给出以下错误(当使用T作为字符串时)
error C2440: 'return': cannot convert from 'std::string' to 'std::string *'
如何返回类型为T
的指针?
我不能使它工作,即使没有初始化object
与nullptr
第二行:
T* MyQueue<T>::pop()
这意味着你的pop()
方法返回一个指向t的指针
第10行:
return *object;
这意味着返回*(T*)object
- object,而不是指向它的指针。
决定你想做什么,要么改变方法的返回类型,要么在返回语句之前不解引用指针。
在返回对象之前,对指向该对象的指针解引用。你应该返回指针,像这样
return object;
你得到的错误是因为你返回了指针指向的值
相关文章:
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 当无法使用模板和宏时,生成类型变体C++代码的最简单方法是什么?
- 是否有内置方法可以强制转换为不同的基础类型,但保留常量限定符?
- 拥有映射的现代方法,该映射可以指向或引用已在堆栈上分配的不同类型的数据
- 类作用域的类型别名"using":[何时]方法中的用法可以先于类型别名?
- 调用具有未标识类型的类的方法
- 将复杂的非基元C++数据类型转换为 Erlang/Elixir 格式,以使用 NIF 导出方法
- 我的模板类方法返回错误类型?
- 在 C++ 中将非指定类型作为参数传递的最佳方法?
- QtQuick - qml:28:错误:未知方法返回类型:自定义类型
- 构造智能点数据类型以及普通数据类型的通用方法
- 如何在没有实例的情况下获取非静态方法的类型?
- C++方法是否可以根据传递给构造函数的参数具有不同的返回类型?
- 在自定义 std::vector-like 容器中处理指针和非指针模板类型的最佳方法是什么?
- 使用类型id运算符的最佳替代方法
- Java 调用 dll 字符串返回类型方法
- C++ 如何绑定和调用模板化类型方法
- 将返回类型推断为模板参数类型方法
- 返回true的模板化类型方法是在条件中进行优化的良好候选者