多态类对象的大小及虚函数表指针大小的模拟实现
时间: 2024-02-15 18:06:13 浏览: 79
学习多态的虚函数例子
多态类对象的大小也会比普通类对象的大小要大,因为多态类对象也包含了虚函数表指针。模拟实现可以如下:
```c++
#include <iostream>
using namespace std;
class A {
public:
A() {}
virtual void func() {}
};
class B : public A {
public:
B() {}
virtual void func() {}
};
int main() {
A* b = new B();
cout << "sizeof(*b) = " << sizeof(*b) << endl;
cout << "sizeof(void*) = " << sizeof(void*) << endl;
delete b;
return 0;
}
```
输出结果为:
```
sizeof(*b) = 8
sizeof(void*) = 8
```
可以看到,多态类对象的大小也为8字节,其中包含一个指向虚函数表的指针,大小也为8字节。
阅读全文