父类/子类句柄和父类/子类对象的指向问题:
父类句柄可以指向子类对象而子类句柄不能指向父类对象。因为父类中开辟的空间子类中都可以开辟,但子类中可能存在新开辟的空间。
父类/子类句柄和父类/子类中成员方法和变量的调用问题:
子类句柄可以调用父类中的成员方法和变量,但父类句柄不能调用子类中的成员方法和变量。因为子类会继承父类的所用成员变量和方法,而且还可能命名新的成员变量和方法。不过可以通过$cast()将父类句柄转变为子类句柄实现对对子类方法的调用。对于成员方法,也可以在父类中通过virtual对相应的方法实现动态绑定,从而实现父类句柄对子类中该方法的调用。而对于成员变量不能使用virtual。