update dir
This commit is contained in:
parent
3d44c8af08
commit
f74415846d
@ -27,6 +27,8 @@ C语言中是没有class类这个概念的,但是有struct结构体,我们
|
|||||||
|
|
||||||
在C语言的结构体内部是没有成员函数的,如果实现这个父结构体和子结构体共有的函数呢?我们可以考虑使用函数指针来模拟。但是这样处理存在一个缺陷就是:父子各自的函数指针之间指向的不是类似C++中维护的虚函数表而是一块物理内存,如果模拟的函数过多的话就会不容易维护了。
|
在C语言的结构体内部是没有成员函数的,如果实现这个父结构体和子结构体共有的函数呢?我们可以考虑使用函数指针来模拟。但是这样处理存在一个缺陷就是:父子各自的函数指针之间指向的不是类似C++中维护的虚函数表而是一块物理内存,如果模拟的函数过多的话就会不容易维护了。
|
||||||
|
|
||||||
|
模拟多态,必须保持函数指针变量对齐(在内容上完全一致,而且变量对齐上也完全一致)。否则父类指针指向子类对象,运行崩溃!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
学习案例代码见:[c_examp.c](./c_examp.c)
|
学习案例代码见:[c_examp.c](./c_examp.c)
|
||||||
|
Loading…
Reference in New Issue
Block a user