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

c++多文件编译小疑点,请指点!

2012-03-06 
c++多文件编译小问题,请指点!!在类的编写过程中,通常采用多文件编译的方法,采用头文件,cpp文件,main文件多

c++多文件编译小问题,请指点!!
在类的编写过程中,通常采用多文件编译的方法,采用头文件,cpp文件,main文件多文件编写。我在编写一个小的函数模板问题时也采用了这样的方法,但是出现了问题。下面是问题的描述:
//模板.h文件:
#include   <iostream>
using   namespace   std;
template   <typename   T>
void   outputarray(const   T   *array,const   int   count);
//模板.cpp文件:
#include   "模板.h "
template   <typename   T>
void   outputarray(const   T   *array,const   int   count)
{    
for(int   i=0;i <count;i++)
cout < <*(array++) < < "   ";
        cout < <endl;
}
//main文件:
#include   "模板.h "
int   main()
{
const   int   acount=8;
const   int   bcount=8;
const   int   ccount=20;
int   a[acount]={1,2,3,4,5,6,7,8};
int   b[bcount]={7,8,9,4,5,6,2,3};
char   c[ccount]= "I   AM   LIQIANG! ";
cout < < "数组a包含的内容是: " < <endl;
outputarray(a,acount);
cout < < "数组b包含的内容是: " < <endl;
outputarray(b,bcount);
        cout < < "数组c包含的内容是: " < <endl;
        outputarray(c,ccount);

        return   0;
}

    这样在编译时出现了错误,若把“模板.cpp”文件去掉,就是说在上述函数模板声明过程中直接进行函数的定义,此时就不会出现错误。
    我的问题是这样的:在类模板的声明过程中可以把类模板的声明和定义放在两个文件中,为什么在函数模板的应用中放在两个文件中(想上面我写得那样)就会出现问题呢?
    请高手指点。谢谢!!
    万分感激!!



[解决办法]
模板暂时不支持 声明和实现的 分离
[解决办法]
理论上应该可以分离,
但是目前的编译器暂时基本都不支持这个分离 ~

如果不是模板,
那是可以分离的。

热点排行