Dúvida com questão de c++

Denunciar
-
Bom dia,
alguém poderia me ajudar a resolver essa questão?

Em um programa existem duas classes, TypeA e TypeB, com interfaces similares, mas que NÃO são relacionadas por nenhum tipo de herança. Um programador criou então duas sobrecargas de uma função sum, uma para cada classe, conforme mostrado abaixo. Note porém que a interface das classes é similar o suficiente para que o código das duas sobrecargas seja idêntico. Como seria possível reescrever a função sum uma única vez, mas permitindo que esta seja aplicada a ambos TypeA e TypeB?

int sum(TypeA *as, int n) {
int sum = 0;
for (int i=0; i<n; i++)
sum += as[i].info();
return sum;
}

int sum(TypeB *bs, int n) {
int sum = 0;
for (int i=0; i<n; i++)
sum += bs[i].info();
return sum;
}

Configuração: Windows / Chrome 84.0.4147.125

Assine nossa newsletter!

Receba toda semana o melhor conteúdo

Assine nossa newsletter!