首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

多态解决方法

2013-01-21 
多态Class a{Public:Virtual f()}Class b: public class b{Public:F()}B b.f()A* pnew b()P-f()

多态
Class a{

Public:
Virtual f();
};

Class b: public class b{
Public:
F();
};

B b.f();
A* p=new b();
P->f();

两种都是运行行动态绑定吗
[解决办法]


class A
{
public:
virtual void f()
{

}
};

class B :public  A
{
public:
void f()
{
printf("%s\n","CALL");
}
};

int main()
{
B b;
b.f(); //和普通成员函数没有区别,属于静态绑定,即在编译的时候就知道要调用哪个f函数
A* p=new B();//属于动态绑定,即在运行的时候才能知道要调用哪个f函数
p->f();
return 0;
}

热点排行