我写了一个模板类,但是它仅适用于intdouble,不适用于我自己的类。代码如下:

/*OrderedList.h*/
namespace MYLIB
{
    class Student
    {
    public:
        display();

    private:
        char* snum;
        char* name;
        char* email;
    };

    template<class T>
    class OrderedList
    {
    public:
        OrderedList() :head(), tail(), size(0) {}
        ~OrderedList(){}

    private:
        ......
    };
}

/*main.cpp*/
#include "OrderedList.h"

int main()
{
    MYLIB::OrderedList<int> listi;
    MYLIB::OrderedList<double> listd;
    MYLIB::OrderedList<Student> lists;
}


我收到的错误消息是:'Error: Student is not defined.'谢谢您的帮助。

最佳答案

StudentMYLIB命名空间中定义,就像类模板OrderedList一样。所以你需要

MYLIB::OrderedList<MYLIB::Student>

关于c++ - 模板类类型仅适用于基本类型,不适用于类类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30491863/

10-10 04:52