指向继承类的基类指针解引用后,是否还具备多态性

969阅读 2评论2009-06-21 maxxfire
分类:C/C++

 
指向继承类的基类指针解引用后,是否还具备多态性
 
class Base
{
public:
    int a;
    virtual void fun() { cout << "Base" << endl; }
};
 
class Extend : public Base
{
public:
    int b;
    virtual void fun() { cout << "Extend" << endl; }
};
 
int main()
{
    Base *pb;
    Extend ex;
    pb = &ex;
 
    pb->fun();
    (*pb).fun();
    cout<
}
 
测试结果:具备多态性。
 
如果将这个指针指向的对象赋给基类对象,基类对象并不会变成多态语意,看来C++挺神奇的:
Base b=(*pb);
b.fun();     //invoke Base::fun()
 
 
上一篇:[转]关于Linux图形的一些消息和废话
下一篇:警惕将派生类数组指针传递给基类指针

文章评论