}
例3.6
#include
#include
usingnamespacestd;
voidDisplay(strings1,strings2="",strings3="");
voidmain()
{
stringstr1("现在"),str2("过去"),str3("将来");
Display(str1);
Display(str1,str2,str3);
Display(str3,str1);
Display(str2,str3);
}
voidDisplay(strings1,strings2,strings3)
{
if(s2==""&&s3=="")cout<elseif(s3==""&&s2!
="")cout<elsecout<}
例3.7
#include
#include
usingnamespacestd;
voidchange(conststring&);
voidmain()
{
stringstr("Canyouchangeit?
");
change(str);
cout<}
voidchange(conststring&s)
{
strings2=s+"No!
";
cout<}
例3.8
#include
usingnamespacestd;
inta[]={2,4,6,8,10,12};
int&index(inti);
voidmain()
{
index(3)=16;
cout<}
int&index(inti)
{returna[i];}
例3.9
#include
usingnamespacestd;
float*input(int&);
voidmain()
{
intnum;
float*data;
data=input(num);
if(data)
{
for(inti=0;icout<deletedata;
}
}
float*input(int&n)
{
cout<<"Inputnumber:
";
cin>>n;
if(n<=0)returnNULL;
float*buf=newfloat[n];
if(buf==0)returnNULL;
for(inti=0;icin>>buf[i];
returnbuf;
}
例3.10
#include
#include
usingnamespacestd;
stringinput(constint);
voidmain()
{
intn;
cout<<"Inputn=";
cin>>n;
stringstr=input(n);
cout<}
stringinput(constintn)
{
strings1,s2;
for(inti=0;i{cin>>s1;s2=s2+s1+"";}
returns2;
}
例3.11
#include
usingnamespacestd;
intmax(int,int);
voidmain()
{cout<intmax(intm1,intm2)
{return(m1>m2)?
m1:
m2;}
3.12
#include
usingnamespacestd;
doublemax(double,double);
intmax(int,int);
charmax(char,char);
intmax(int,int,int);
voidmain()
{
cout<cout<<"max(5,9,4)="<}
doublemax(doublem1,doublem2){return(m1>m2)?
m1:
m2;}
intmax(intm1,intm2){return(m1>m2)?
m1:
m2;}
charmax(charm1,charm2){return(m1>m2)?
m1:
m2;}
intmax(intm1,intm2,intm3)
{
intt=max(m1,m2);
returnmax(t,m3);
}
3.13
#include
usingnamespacestd;
intadd(intm1=0,intm2=0,intm3=0,intm4=0)
{returnm1+m2+m3+m4;}
voidmain()
{
cout<}
3.14
#include
usingnamespacestd;
template
Tmax(Tm1,Tm2)
{return(m1>m2)?
m1:
m2;}
voidmain()
{
cout<<}
3.15
#include
#include
#include
usingnamespacestd;
voidprinter(complex);
voidprinter(complex);
voidmain()
{
inti(0);
complexnum1(2,3);
complexnum2(3.5,4.5);
printer(num1);
printer(num2);
}
voidprinter(complexa)
{
stringstr1("realis"),str2="imageis";
cout<}
voidprinter(complexa)
{
stringstr1("realis"),str2="imageis";
cout<}
3.16
#include
#include
#include
usingnamespacestd;
template
voidprinter(complexa)
{
stringstr1("realis"),str2="imageis";
cout<}