gpt4 book ai didi

c++ - 虚表指针

转载 作者:搜寻专家 更新时间:2023-10-31 00:35:31 31 4
gpt4 key购买 nike

<分区>

我决定真正了解 vtable 是如何构建的。所以我打开调试器并发现了一些奇怪的东西。节点ptr 包含一些vptr。我一直认为每个对象只有一个 vptr。谁能向我解释这里发生了什么? (我的意思是当基类指针指向派生类的对象时)

#include <iostream>
using namespace std;

class Base
{
int base;
public:
virtual void say()
{
cout << "Hello" << endl;
}
virtual void no()
{
cout << "No" << endl;
}
};


class Base2
{
public:
virtual void lol()
{
cout << "lol" << endl;
}
};

class Derv:public Base,public Base2
{
public:
void say()
{
cout << "yep" << endl;
}

};


int main()
{

Base* ptr = new Derv();
ptr->say();
ptr = new Base();
ptr->say();
}

enter image description here

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com