(10)有如下程序:
#include
usingnamespacestd;
classCon
{
charID;
public:
Con():ID('A'){cout<<1;}
Con(charID):ID(ID){cout<<2;}
Con(Con&c):ID(c。getID()){cout<<3;}
chargetID()const{returnID;}
};
voidshow(Conc){cout<
intmain()
{
Conc1;
show(c1);
Conc2('B');
show(c2);
return0;
}
执行上面程序的输出是【10】。
(11)有如下程序:
#include
usingnamespacestd;
classONE
{
public:
virtualvoidf(){cout<<"l";}
};
classTWO:publicONE
{
public:
TWO(){cout<<"2";}
};
classTHREE:publicTWO
{
public:
virtualvoidf(){TWO::f();cout<<"3";}
};
intmain()
{
ONEaa,*p;
TWObb;
THREEcc;
p=&cc;
p->f();
return0;
}
执行上面程序的输出是【11】。
(12)有如下程序:
#include
usingnamespacestd;
classPARENT
{
public:
PARENT(){cout<<"PARENT";}
};
classSON:publicPARENT
{
public:
SON(){cout<<"SON";}
};
intmain()
{
SONson;
PARENT*p;
p=&son;
return0;
}
执行上面程序的输出是【12】。
(13)若以非成员函数形式,为类Bounce重载“!”运算符,其操作结果为一bool型数据,则该运算符重载函数的原型是【13】。
(14)下面是复数类complex的定义,其中重载的运算符“+”的功能是返回一个新的复数对象,其实部等于两个操作对象实部之和,其虚部等于两个操作对象虚部之和;请补充完整:
classcomplex
{
doublereal;//实部
doubleimag;//虚部
public:
complex(doubler,doublei):real(r),imag(i){}
complexoperator+(complexa)
{
returncomplex(【14】);
}
};
(15)已知一个函数模板定义为
templateT1,typenameT2>
T1FUN(T2n){returnn*5。0;}
若要求以int型数据7为函数实参调用该模板函数,并返回一个double型数据,则该调用应表示为【15】。