芦花荡景物句子赏析:请教关于C++虚函数的使用

来源:百度文库 编辑:神马品牌网 时间:2024/04/19 12:06:50
我知道虚函数用于动态绑定,但使用中有个疑问,请赐教。
比如有3个类,A派生了B,B派生了C,它们都有一个虚函数play()。我在另一个函数DoPlay(int iType)里要使用这3个类的play函数,如:
A *pObj = NULL;
switch(iType)
{
case 1:
pObj = new A;break;
case 2:
pObj = new B;break;
case 3:
pObj = new C;break;
}
pObj->play();
delete pObj;

这么写感觉好罗嗦啊,如果派生的类很多,比如A
派生了B,C,D,E,F等等,那用switch语句就更不舒服了,请问有没有更好的方法来使用虚函数呢?

上面这段代码,不用多态性也不是很复杂啊:
switch(iType)
{
case 1:
A ObjA;
ObjA.play();break;
case 2:
B ObjB;
ObjB.play();break;
case 3:
C ObjC;
ObjC.play();break;
}

所以,不知道虚函数真正到底可以好在哪里呢?

虚函数的好处在于你用看起来同样的一段代码但是却做了不同的事情.看过到底是猫叫还是狗叫的例子吗.
看你给的是帽的地址还是狗的地址了