我正面临以下问题。虚拟方法C++
我实现父类 - 车辆,它有一定的派生类,其中之一 - FastVehicle。
在程序中我需要存储一个车辆向量*指针。指针也可能指向Vehicle对象或FastVehicle对象。
1)我想能够调用向量中的每个对象的方法print()。 的问题是,在FastVehicle的情况下,我也想一个参数转院的功能, 我需要调用与签名功能:
void print(int a)
我知道虚函数机制一点点,但根据据我所知,它只在两个函数具有相同签名时才起作用。
我想听听有关如何解决问题的建议。
2)另外在派生类FastVehicle有一些独特的功能,它不会与父类Vehicle共享。 它执行的任务只应执行FastVehicle对象。 实现此目标的最简洁方法是什么? 我想,也许,以实现在父类车辆“空”虚函数和实施FastVehicle
的首要方法里面的“真实”的任务也许有人可以提出一个更好的解决方案。
谢谢
可以实现通用接口或使用dynamic_cast。 –
如果你真的希望派生类具有不兼容的接口,'dynamic_cast'就是答案。如果可以的话,定义一个通用接口将会更清洁。 –
不得不使用'dynamic_cast'通常是一个你没有足够的想法。 – OMGtechy