我有一个基类和两个派生自它的类.我在基类中有几个虚函数,所以我创建了一个指向基类的指针,并使用这个指针来访问这些方法.
现在我想使用指向派生类对象的基类的指针来访问派生类的成员变量(此变量不存在于基类中).
可以这样做吗?应该这样做吗?
为什么要访问派生类的接口?当您使用多态时,您不需要关心基类引用/指针背后的内容.如果你这样做,那通常暗示着一个设计缺陷.
你要做的是"开启型".("如果后面B*是一个D1对象,请执行此操作,否则执行此操作".)开启类型是绕过多态和一个坏符号.
注意:有一种方法可以做到这一点(dynamic_cast),但由于上面提到的原因,我认为这是一种不好的做法,并没有详细说明.