C++强制转换

2025-01-07 08:12:49
推荐回答(2个)
回答1:

没看出哪里有强制转换啊...
如果你是想验证C++的多态性....建议你把mian函数改成如下..
int main(int argc, char* argv[])
{
employee *s;
char ss[10];
cin>>ss;
if(!strcmp(ss,"a"))
s=new tech();
else
s=new busi();
s->getpay();
return 0;
}
这样如果基类employee的getpay()函数没有加virtual关键字,那么 s->getpay()还是调用的employee的getpay();
如果基类加了virtual,这根据实际实例化的对象来调用,在这个程序中,如果输入a ,则调用tech的getpay(),否则调用busi的getpay().

回答2:

基类函数本身就没内容
命名又一样 执行的是基类的函数

if(*ss=='a')
{
tech s;
s.getpay();
}
else
{
busi s;
s.getpay();
}