c++ 多文件怎么组织
照着cpp cookbook的代码敲,但是遇到了多文件的组织问题:
书上的源代码:(但不知道utils.h和utils.cpp怎么写,下面给出了这3个文件的实现,只是不知道如何组织成一个程序)
- C/C++ code
#include <algorithm>#include <string>#include <iostream>#include <vector>#include <iterator>using namespace std;#include "ultis.h"int main() { vector<int> v; back_insert_iterator<vector<int>> p = back_inserter(v); for(int i=0;i<10;i++) *p=i; printContainer(v); random_shuffle(v.begin(),v.end()); printContainer(v); return 0;}===========================================================================================
utils.h 源代码(就是不知道怎么写这个头文件,自己写的编译时老提示错误)
- C/C++ code
template<typename C>void printContainer(const C& c,char delim=',',ostream &out=cout) ;template <typename Fwd>void printRange(Fwd first,Fwd last, char delim=',',ostream &out=cout) ;
============================================================================================
里面的两个函数模板的定义:
utils.cpp
- C/C++ code
template<typename C>void printContainer(const C& c,char delim,ostream &out) { printRange(c.begin(),c.end(),delim,out);}template <typename Fwd>void printRange(Fwd first,Fwd last, char delim,ostream &out) { out<<"{"; while(first!=last) { out<<*first; if(++first!=last) cout<<delim<<' '; } out<<"}"<<endl;}======================================================================================
请问怎么写这3个文件才能在vc6上正确运行?
[解决办法]
模板函数/类的定义只能放在头文件,否则就会出现“未定义”
[解决办法]
函数模板声明和定义可以分开,但是类模板的要放在一个头文件里才能编译通过;
[解决办法]