首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

模板类的定义与实现分别放在.h和.cpp中,VC6编译的时候报错,该如何解决

2012-02-13 
模板类的定义与实现分别放在.h和.cpp中,VC6编译的时候报错//------------------//Main.cpp-begin#include

模板类的定义与实现分别放在.h和.cpp中,VC6编译的时候报错
//   ------------------
//   Main.cpp   -   begin

#include   "Tree.h "

int   main()
{
        Tree <int>   t;

        return   0;
}

//   Main.cpp   -   end
//   ------------------


//   ------------------
//   Tree.h   -   begin

#ifndef   _TREE_H
#define   _TREE_H

#include   "iostream.h "


template <class   T>
class   Tree
{
private:
        T               cContent;

public:
        Tree();
        ~Tree();

        int   SetContent(T   cContent);
        T   GetContent();

};

#endif

//   Tree.h   -   end
//   ------------------


//   ------------------
//   Tree.cpp   -   start

#include   "Tree.h "

template <class   T>
Tree <T> ::Tree()
{
        cout < < "Tree " < <endl;
        return   ;
}

template <class   T>
Tree <T> ::~Tree()
{
        return   ;
}


template <class   T>
T   Tree <T> ::GetContent()
{
        return   cContent;
}

template <class   T>
int   Tree <T> ::SetContent(T   cContent)
{
        this-> cContent   =   cContent;
        return   0;
}

//   Tree.cpp   -   end
//   ------------------


[解决办法]
贴个pongba的blog链接:
http://blog.csdn.net/pongba/archive/2003/10/24/19130.aspx
因为当前很少有编译器能实现模板的分离式编译
[解决办法]
用export关键字可以实现,但现在貌似还没有compiler支持.
期待下一代C++吧.

现在的解决办法就是:先把它们都放到.h文件里吧.
[解决办法]
这个目前几乎所有常用的编译器都要报错。
[解决办法]
编译器不能识别这种模板方式

热点排行