題1.分析以下程序的執(zhí)行結(jié)果
#include
template
T abs(T x)
{
return (x>0?x:-x);
}
void main()
{
cout<}
解:
abs()是一個(gè)函數(shù)模板,它返回參數(shù)的絕對(duì)值。在調(diào)用時(shí)自動(dòng)聯(lián)編相應(yīng)的abs()函數(shù)。
所以輸出為:3,2.6
題2.分析以下程序的執(zhí)行結(jié)果
#include
template
class Sample
{
T n;
public:
Sample(){}
Sample(T i){n=i;}
Sample&operator+(consta Sample&);
void disp(){cout<<"n="< };
template
Sample&Sample::operator+(const Sample&s)
{
static Sample temp;
temp.n=n+s.n;
return temp;
}
void main()
{
Samples1(10),s2(20),s3;
s3=s1+s2;
s3.disp();
}
解:
Sample為一個(gè)類模板,產(chǎn)生一個(gè)模板類Sample,并建立它的三個(gè)對(duì)象,調(diào)用重載運(yùn)算符+實(shí)現(xiàn)s1與s2的加法運(yùn)算,將結(jié)果賦給s3。
所以輸出為:n=30
#include
template
T abs(T x)
{
return (x>0?x:-x);
}
void main()
{
cout<}
解:
abs()是一個(gè)函數(shù)模板,它返回參數(shù)的絕對(duì)值。在調(diào)用時(shí)自動(dòng)聯(lián)編相應(yīng)的abs()函數(shù)。
所以輸出為:3,2.6
題2.分析以下程序的執(zhí)行結(jié)果
#include
template
class Sample
{
T n;
public:
Sample(){}
Sample(T i){n=i;}
Sample
void disp(){cout<<"n="<
template
Sample
{
static Sample
temp.n=n+s.n;
return temp;
}
void main()
{
Sample
s3=s1+s2;
s3.disp();
}
解:
Sample為一個(gè)類模板,產(chǎn)生一個(gè)模板類Sample
所以輸出為:n=30

