![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程语言
文章平均质量分 52
zinthos
这个作者很懒,什么都没留下…
展开
-
C++ 内存划分与虚函数表在内存中的位置
一直都不清楚C++的内存具体是怎样划分的,只知道大致有堆区、栈区、全局静态区、常量区等划分。如果没记错的话,好像还有一个代码区。 那么,我们知道C++里的虚函数是借助虚函数表实现的,含有虚函数的类的对象中有一个指向虚函数的指针(通常是对象前4个字节(32位))。现在的问题是虚函数表是保存在内存中的哪个部分中呢?原创 2015-09-05 22:28:32 · 2747 阅读 · 0 评论 -
用C语言实现多态
怎样用C语言实现多态,首先想到的应该是去模拟C++的虚函数。在C++中,每一个含有虚函数的类,都有一个虚函数表。对于类的每一个对象,都有一个指向虚函数表的指针。用C语言模拟这个过程。先考虑最简单的情况,只含有一个虚函数的类,并且只有构造函数,没有虚析构函数。 假设这个类Base有一个int类型的成员变量val,虚函数run(int num)能够输出(val+num)的值。它的派生类Derived的原创 2015-09-06 20:48:45 · 835 阅读 · 0 评论