跪求大神解答头文件问题
头文件SeqArrary.h
#pragma once
#ifndef CLASS_SWQARRAY_DECLARE
#define CLASS_SWQARRAY_DECLARE
const int MAX=100;
template <class Type> class SeqArrary
{
public:
SeqArrary(void)
{
size=0;
}
public:
~SeqArrary(void){}
public:
Type Data[MAX];
int size;
public:
int push_back(Type t)
{
Data[++size]=t;
return size;
}
};
#endif
源程序SeqArrary.cpp
#include "SeqArrary.h"
想问一下,为什么不只写一个头文件?这个SeqArrary.cpp中也没有什么东西啊 它存在的意义是什么呢?
求大神解答!!!
[解决办法]
一般情况下,.h里是放声明,.cpp里是放定义,上面的代码中把定义放在了.h中
第二个问题 :是
[解决办法]
因为这个类是一个泛型,需要模板参数,所以类所有的实现必需在.h中,而不能放在.cpp中。(关于这个问题有一些讨论,我不知道现在的标准或者实现是否还有这个要求,但是按照这个要求做的代码可以保证没问题)。
关于.cpp中只是include了头文件,这是因为如果生成库,需要用源文件做编译单元,然后进行链接。参考http://zhidao.baidu.com/question/184316793.html