Enclave_ 2022-04-12 14:48 采纳率: 88.5%
浏览 36
已结题

c++引用指向对象的问题

#include <iostream>
using namespace std;
class A
{
public:
    void func1()
    {
        cout << "A1" << endl;
    }
    virtual void func2()
    {
        cout << "A2" << endl;
    }
};
class B : public A
{
public:
    void func1()
    {
        cout << "B1" << endl;
    }
    void func2()
    {
        cout << "B2" << endl;
    }
};

int main()
{
    A *a = new B;
    a->func1();
    a->func2();
}

下面是输出

img


A *a = new B这个是什么意思 书上也没有写 那么这个输出是怎么来的

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2022-04-12 14:57
    关注

    就是用基类的指针指向子类对象
    由于func1不是虚函数,因此实际执行的是基类的func1函数
    由于func2是虚函数,因此实际执行的是子类的fun2函数
    这个代码就是来体现类的多态性的样例代码。
    通过基类指针,指向具体的某个子类对象,在调用虚函数时,多态性会自动调用具体子类的函数,而不是基类的函数。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月17日
  • 已采纳回答 4月12日
  • 创建了问题 4月12日

悬赏问题

  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)