g++编译类模板问题

沈园 发布于 2013/11/05 13:36
阅读 360
收藏 1
GCC

定义了一个类模板,

stack.h
template<class T>
class Node{
  T data;
};
template<class T>
class stack
{
   private:
      Node<T> *top;
      Node<T> *bottom;
      int curLen;
      int totalLen;
  public:
        stack(int size);
      ......
}
stack.cpp
#include<stack.h>
template<class T>
stack<T>::stack(int size)
{
top=bottom=(Node<T> *)malloc(sizeof(Node<T>)*size);
curLen=0;
totalLen=size;
}
.....
main.cpp
.....
stack<float> v(100);
v.pop();
...
 
编译环境是G++,总是提示一大堆的函数找不到
undefined reference to 'stack<float>::stack(int size)'
undefined reference to 'stack<float>::pop()'

加载中
0
公孙二狗
公孙二狗

GCC还不支持类模板的分离编译。

类模板的声明和实现都必须在同一个.h文件里。

0
剑尖血凝紫
剑尖血凝紫
怪不得我之前编译不过,大爷的
0
沈园
沈园
竟然是这样。。。。感谢
返回顶部
顶部