C++多态基类和派生类之间转换-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

a123456678 2016-03-06 15:42:49 1843
#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并没有创建??
为什么能够使用,
多态是怎么调用的

C++
分享到
取消 提交回答
全部回答(1)
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程