我有一个基类和一个扩展它的子类。子类有自己的方法,而父类没有。也就是说,在基类中将其声明为虚拟并不是一个真正的选择。
class A {
public:
virtual void helloWorld();
};
class B : public A {
public:
virtual void helloWorld();
void myNewMethod();
};
然后,在我的实现中,我有一个指向 A 的指针,并将其构造为 B:
// somewhere in a .cpp file
A* x;
x = new B();
x->myNewMethod(); // doesn't work
我目前的解决方案是强制转换它:
((B *)x)->myNewMethod();
我的问题是,有没有一种更清洁的方式来做到这一点,或者正在寻找要走的路?