开发环境:win7 + Visual Studio 2005
习题16.1
编写一个模板返回形参的绝对值。至少用三种不同类型的值调用模板。
注意:在16.3节讨论编译器怎样处理模板实例化之前,你应该将每个模板定义和该模板的所有使用放在同一文件中。
解答:代码如下:
// Test.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
template <typename T>
T abs(const T &number)
{
return ( number>=0 ? number : -number );
}
void keep_window_open()
{
char ch;
cin>>ch;
}
int _tmain(int argc, _TCHAR* argv[])
{
cout<<abs(-1)<<endl;
cout<<abs(-1.2)<<endl;
long l1 = 20;
cout<<abs(l1)<<endl;
keep_window_open();
return 0;
}
习题16.2
编写一个函数模板,接受一个ostream引用和一个值,将该值写入流。用至少四种不同类型调用函数。通过写至cout、写至文件和写至stringstream来测试你的程序。
解答:空