刚接触 C++,但仍能掌握它。使用模板我有这个:
template<typename TransportType>
Automobile<TransportType>::Automobile(std::string make)
: Transport(make)
所以我有一些都继承自“传输”。例如另一个是:
template<typename TransportType>
Aircraft<TransportType>::Aircraft(std::string make)
: Transport(make)
Automobile<Coach> * coach = new Automobile<Coach>("Volvo");
Aircraft<JumboJet> * jumbojet = new Aircraft<Jumbojet>("Boeing");`
我的问题是,如果我有一种传输类型,我如何才能将其“转换”为另一种而不将传输类型放入运行时。例如:
*coach = dynamic_cast<*jumbojet typeid<transporttype>>(jumbojet);`
(我不确定是 *jumbojet typeid 的那一点)
我看了一下 memcpy 但似乎无法使其工作。(我知道如果实际对象中包含指针,则可能会出现问题,而它们没有。)
memcpy(*jumbojet, *coach, sizeof(coach))