通过这个例子, 可以看出, 定义指针变量时只要使用 “强制转换” , 就可以通过编译, 注意赋值时候格式 “ & xxx :: FuncName “ , 就是取出函数跳转地址, 这样看来, 指针变量保存的
数据不过就是 函数跳转地址, 使用void* 也可以做到, 但是 后者在调用时候就很麻烦, 要写成 …..
调用时, 继承类型的好处是 : 和父类一样的调用方式. 没有任何关系的类型, 就要写成animal 的调用方式, 用 CPlant* 来强制转换来通过编译, 不要认为这样调用比上面两个慢,
其实, 汇编结果都一样, 如下