c++ - C++中的结构模板
问题描述
我有一个头文件,
class CListEx
{
public:
CListEx();
~CListEx();
void InitList();
void AddList(char * msg);
private:
template <typename T>
struct MyList {
T data;
int num;
};
};
现在在 Cpp 文件中,
void CListEx::InitList()
{
MyList *my = new MyList();
}
这会产生错误,
E0441 类模板“CListEx::MyList”的参数列表丢失
错误 C2514 'CListEx::MyList':类没有构造函数
有任何想法吗?
我尝试了什么:
我尝试了以下方法,但这也给出了错误。
template <typename T >MyList *my = new template <typename T >MyList();
解决方案
错误消息给出了一个非常明确的原因:类模板的参数列表丢失。意思是,您应该编写一些代码,例如:
void CListEx::InitList()
{
MyList<int> *my = new MyList<int>();
}
阅读模板,例如:https ://www.programiz.com/cpp-programming/templates
推荐阅读
- javascript - 如何修复“错误:找不到模块'@endb/sqlite'”
- docker - skaffold - 入口错误 - 主机和路径已定义
- javascript - 使用 AJAX 和 vanilla JS 处理 Mailchimp 注册表单
- kubernetes - K8s 任何负载均衡?
- css - 反应滑块显示空白
- google-cloud-platform - 使用 Pem 文件获取公钥/私钥
- python - PGP 加密密钥用法
- r - 如果不强制列表,数据框可以将向量附加到自身以创建新列吗?
- multithreading - @Transactional 在 Quarkus 的子线程中不起作用?
- git - 在拉取请求期间,Github 对“功能分支代码”而不是“合并后类似代码”运行“Junit”检查