Cümleleri kullanarak iki temel sınıfım var
class MultiCmdQueueCallback {
using NetworkPacket = Networking::NetworkPacket;
....
}
class PlcMsgFactoryImplCallback {
using NetworkPacket = Networking::NetworkPacket;
....
}
Sonra bir sınıf beyan ederim
class PlcNetwork :
public RouterCallback,
public PlcMsgFactoryImplCallback,
public MultiCmdQueueCallback {
private:
void sendNetworkPacket(const NetworkPacket &pdu);
}
derleyici daha sonra 'NetworkPacket' için bir hata başvurusu belirsiz 'sendNetworkPacket (NetworkPacket & ...'
Şimdi her ikisi de 'yan tümceleri' aynı temel sınıfa gider Ağ: NetworkPacket
ve aslında yöntem beyanını yerine koyarsam:
void sendNetworkPacket(const Networking::NetworkPacket &pdu);
iyi derler.
Derleyici, her ikisi de aynı temel türü işaret etseler bile, her bir yan tümcesi ayrı bir tür olarak ele alıyor. Bu standart tarafından zorunlu mu yoksa derleyici hatası var mı?
NetworkPacket
- MultiCmdQueueCallback'te, PlcMsgFactoryImplCallback'te, Networking'de. Hangisinin kullanılacağı belirtilmelidir. Ve burada koymanın virtual
herhangi bir yardımı olacağını sanmıyorum .