Вот приспичило разобрать такую ситуацию: есть класс, наследующий от двух интерфейсов. У интерфейсов одинаковое количество функций, и одинаковые их сигнатуры, но «начинка» функций в каждом интерфейсе должна быть своя:
struct Iface0
{
void func0(void) = 0;
void func1(void) = 0;
};
struct Iface1
{
void func0(void) = 0;
void func1(void) = 0;
};
struct Implement : Iface0,Iface1
{
//???
void func0(void) { /**/ return; }; // Где чья реализация?
void func1(void) { /**/ return; }; // Где чья реализация?
};
Не могу понять, как в Implement-е разграничить реализации функций Iface0 от Iface1? Я что-то упускаю, или так вообще делать нельзя?