【发布时间】:2021-03-24 14:12:37
【问题描述】:
我有这门课:
template<typename T>
class array_eraser
{
T* array;
int size_array;
public:
array_eraser(T &a[], int s)
{
size_array = s;
array = new T[s];
array = a;
}
}
我在 main 中用这一行调用类:
std::string langs[] = { "C++", "Haskell", "Ada", "Python", "Ada" };
array_eraser<std::string> le(langs, sizeof(langs) / sizeof(langs[0]));
我收到此错误:无法将参数 1 从 'std::string [5]' 转换为 'T *[] 我做错了什么?
【问题讨论】:
-
array = new T[s]; array = a;不错的即时内存泄漏 ;) 分配内存并立即丢弃它。 -
这能回答你的问题吗? Passing an array by reference
标签: c++ arrays pointers templates reference