首页 > 解决方案 > 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();

标签: c++

解决方案


错误消息给出了一个非常明确的原因:类模板的参数列表丢失。意思是,您应该编写一些代码,例如:

void CListEx::InitList()
{
    MyList<int> *my = new MyList<int>();
}

阅读模板,例如:https ://www.programiz.com/cpp-programming/templates


推荐阅读