C++,对于数据结构相同但数据处理方式不同的两种类,可以用虚函数列表地址进行区分和相互转化。
举个简单的例子,一个数据可能是整型的,也可能是浮点数。在运行过程中,类型有可能发生变化。如果统一用浮点数表示,那么整型的取值范围就会变小;如果要兼顾整型的取值范围,一般来说,就得使用更多的空间来表示浮点数或者数的类型。
今天突发奇想,直接用虚函数来进行不同的处理,并且在类型发生变化的时候改变其虚函数列表进行类型转化。
可以使用new (address) className()来修改虚函数列表地址。
class Number : public Base
{//主整型
fr
原创
2021-08-10 22:26:22 ·
446 阅读 ·
0 评论