您的位置:首页 > 其它

关于虚函数(多态)与继承的一道搜狗笔试题

2013-03-25 09:16 274 查看
#include<iostream>
usingnamespacestd;
/*
Name:
Copyright:
Author:
Date:25/03/1309:12
Description:虚函数的作用是多态的应用,这样用子类去new一个父类的对象将调用子类的方法
*/

classBase{
public:
Base(intj):i(j){}
virtual~Base(){printf("Basedel\n");}//此处若不加virtual,那么将不会调用基类析构
voidfunc1(){printf("Basefunc1\n");i*=10;func2();}
intgetValue(){returni;}
protected:
virtualvoidfunc2(){printf("Basefunc2\n");i++;}
protected:
inti;
};

classChild:publicBase{
public:
~Child(){printf("childdel\n");}
Child(intj):Base(j){}
voidfunc1(){printf("childfunc1\n");i*=100;func2();}
protected:
voidfunc2(){printf("childfunc2\n");i+=2;}
};

intmain()
{
Base*pb=newChild(1);//多态
pb->func1();
cout<<pb->getValue()<<endl;
deletepb;
system("pause");
}



输出结果:

Basefunc1
childfunc2
12
childdel
Basedel




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: