开发者社区 问答 正文

C++多态基类和派生类之间转换

#include <iostream>
#include<iostream>
using namespace std;

class A
{
public:
    void foo()
    {
        printf("1\n");
    }
    virtual void fun()
    {
        printf("2\n");
    }
};
class B : public A
{
public:
    void foo()
    {
        printf("3\n");
    }
    void fun()
    {
        printf("4\n");
    }
    void testB()
    {
        printf("testB\n");
    }
};

int main(int argc, const char * argv[]) {
    A a;
    B *ptr = (B *)&a;
    ptr->foo();
    ptr->fun();
    ptr->testB();

    B bb;
    A *aa = &bb;
    aa->foo();
    aa->fun();

    return 0;
}

A a;
B ptr = (B )&a;
ptr->foo();
ptr->fun();
ptr->testB();
派生类的对象B并没有创建??
为什么能够使用,
多态是怎么调用的

展开
收起
a123456678 2016-03-06 15:42:49 3415 分享 版权
1 条回答
写回答
取消 提交回答
问答分类:
C++
问答地址: