模板函数应该将声明与定义放在一起
看如下例题:
```
//tem.h
#ifndef _TEM_H
#define _TEM_H
template T add(T a, T b);
//{
//return a+b;
//}
#endif
//tem.cpp
include "tem.h"
template T add(T a, T b)
{
return a + b;
}
template int add(int, int);//实例化定义,必须放在模板定义的后面
//main.cpp
include
include "tem.h"
using namespace std;
int main()
{
继续阅读 »
关键点一: 同一个stringstream对象来多次处理数据,每次使用前,使用stream.str("");保证数据已清空。
例如:
std::stringstream ss;
string result;
ss << 1;
ss>>result;
//必须牢记使用stringstream两次输入,必须使用前清空
ss.clear();
ss.str("");
ss << 2;
又或者参看下面这段程序:
```
include
include
include
using namespace std;
///////////////////////////////////////////////////继续阅读 »
分析:运算时产生的大数可能会使32位整数溢出,需要使用64位的整数类型more
```cpp
include
include
ifdef DEBUG
include "../comm_headers/debug_helper.h"
else
define DEBUG_OUT(...)
endif继续阅读 »