注册 登录
编程论坛 C++教室

这句话怎么解释?

lindayanglong 发布于 2008-09-11 16:32, 545 次点击
这句话怎么解释?parent *p=new son(); 请指教

#include<iostream>
using namespace std;
class parent
{
public:
    virtual void foo()
    {
        cout<<"foo from parent."<<endl;
    }
    void foo1()
    {    
        cout<<"foo1 from parent."<<endl;
    }
};
class son:public parent
{
public:
    void foo()
    {
        cout<<"foo from son."<<endl;
    }
    void foo1()
    {    
        cout<<"foo1 from son."<<endl;
    }
};
int main()
{
    parent *p=new son();
    p->foo();
    p->foo1();
    return 0;
}
3 回复
#2
blueboy820062008-09-11 18:07
这就是传说中的句柄嘛。。。
可以指向基类或派生类。。。
#3
blueboy820062008-09-11 18:36
补充一下,其实上面说法也不完全正确...句柄类还要比这个复杂的多,但道理是一样的...
我们估且就把它看成是基类的指针吧...
它既可以指向基类类型的对象又可以指向派生类类型对象,而所指向的虚成员将在运行时发生动态在邦定...
你从运行结果上可以明确看到这一点...
#4
lindayanglong2008-09-11 21:15
谢谢,明白了
1