1 #include <iostream>
2  using namespace std;
3
4 class A
5 {
6 public:
7 int m_data1;
8 virtual void vfunc1(){}
9 virtual void vfunc2(){}
10 void func1(){}
11
12 };
13
14 class B:public A
15 {
16 public:
17 int m_data2;
18 virtual void vfunc1(){}
19 };
20
21 class C:public B
22 {
23 public:
24 int m_data1;
25 virtual void vfunc2(){}
26 };
27
28 int main()
29 {
30 cout << sizeof(A) << endl;
31 cout << sizeof(B) << endl;
32 cout << sizeof(C) << endl;
33 return 0;
34 }

输出答案为:

8

12

16

因为vptr得字节数为4,而派生类的内存变大了是因为派生类增加了新的变量,下图为仔细的解释

虚函数(二)

相关文章:

  • 2021-09-08
  • 2022-12-23
  • 2022-12-23
  • 2021-11-05
  • 2021-05-20
  • 2021-07-26
  • 2021-11-10
  • 2021-07-16
猜你喜欢
  • 2021-12-20
  • 2021-06-15
  • 2022-12-23
  • 2022-12-23
  • 2021-10-11
  • 2021-05-27
相关资源
相似解决方案