今天编写数组链表的程序,出现了一个问题,我在ArrayList.h中定义了一个模板类ArrayList,然后按照原来的习惯,在另一个源文件ArrayList.cpp中对模板类的成员函数进行定义,编译也通过了,但是当我在main函数对模板类进行实例化时,编译器报错,显示为成员函数undefined,就是说我的成员函数未定义,这就让我纳闷了。
我试着将构造函数的定义移到头文件里去,再编译,运行,成功,这次不说我的构造函数未定义了,改说其他没有移动到头文件的函数是undefined的,我大概明白这是什么意思了,于是上网百度。
得说法如下,呵呵,大家都是姿势水平很高的人,我就不翻译了,有C++基础的应该都能看懂:
本文探讨了在C++中使用模板类时遇到的问题,即成员函数被报告为未定义。作者尝试了将构造函数定义移至头文件的方法,并讨论了如何正确地在源文件中实现模板类成员函数。

378

被折叠的 条评论
为什么被折叠?



