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

关于模版类的有关问题

2012-02-14 
关于模版类的问题我建了一个最简单的模版类,可测试的时候出错了。//A.h#ifndefA

关于模版类的问题
我建了一个最简单的模版类,可测试的时候出错了。
==========================
//A.h
#ifndef   A_H
#define   A_H

template   <class   T>
class   A   {
public:
            A();
};

#endif
==========================
//A.cpp
#include   "A.h "
#include   <iostream>
using   std::cout;

template   <class   T>
A <T> ::A()   {
        cout < < "construct " < <endl;
};
===========================
//test.cpp
#include   "A.h "
void   main()
{
        A <int>   a;
}
============================

错误信息是error   LNK2001:   unresolved   external   symbol   "public:   __thiscall   A <int> ::A <int> (void) "   (??0?$A@H@@QAE@XZ)

不知道是什么原因

[解决办法]
又是模板试图分离编译。把a.cpp里的内容全挪入a.h

[解决办法]
模板实现放在那个.h文件
分离编译看你的编译器支持export关键字么
希望说情出了
[解决办法]
不管VC几,尽量不要把模板放实现在cpp文件中。
除非你的模板只在那一个文件中被使用。
export功能也非常有限的,并不能实现真正意义上的独立编译,而且还比较复杂,尤其对于初学者,别去了解也罢。
[解决办法]
哎,楼主,你错了一个概念。模板类不是类,正确叫法应该是“类模板”。

热点排行