面向对象程序设计-C++_课时24多态的实现
Posted 邓戈麟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象程序设计-C++_课时24多态的实现相关的知识,希望对你有一定的参考价值。
所有带virtual的类的对象,里面最上面有一个隐藏的指针vptr,指向一张表vtable
1 #include <iostream> 2 using namespace std; 3 4 class A 5 { 6 public: 7 A() :i(10) {} 8 virtual void f() { std::cout << "A::f()" << std::endl; } 9 int i; 10 }; 11 12 void main() 13 { 14 A a, b; 15 a.f(); 16 17 std::cout << sizeof(a) << std::endl;//8,不是4 18 19 int *p = (int *)&a; 20 int *q = (int *)&b; 21 22 int *x = (int *)*p; 23 24 std::cout << *x << std::endl; 25 26 std::cout << *p << " " << *q << std::endl;//一样 27 28 system("pause"); 29 }
1234
以上是关于面向对象程序设计-C++_课时24多态的实现的主要内容,如果未能解决你的问题,请参考以下文章
面向对象程序设计-C++_课时19const_课时20不可修改的