Sobrecarga de template de função. Sobrecarregue o template de função printArray da Figura 22.1 com uma versão não template que imprima um array de strings de caracteres em um formato organizado, em colunas.
Passo 1
Vamos sobrecarregar a função template printArray(). A função de sobrecarga vai gerar uma matriz de cadeias de caracteres em um formato tabular.
Cabeçalho da função:
void printArray(char** array, int count,
int columns)
{
...
}
Passo 2
Itere pela matriz, formatando a saída com a função setw() da seguinte forma:
void printArray(char** array, int count,
int columns)
{
for (int i = 0; i count; i++)
{
for (int j = 0; j columns; j++)
cout setw(2) array[i][j];
cout endl;
}
Passo 3
Demonstração
int main()
{
const int aCount = 5;
const int bCount = 7;
const int cCount = 6;
const int dCount = 4;
const int dColumns = 4;
int a[aCount] = { 1, 2, 3, 4, 5 };
double b[bCount] = {
1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7
};
char c[cCount] = "HELLO";
char** d = new char*[dCount];
d[0] = (char*)"Army";
d[1] = (char*)"Also";
d[2] = (char*)"Area";
d[3] = (char*)"Away";
cout Array a contains:" endl;
printArray(a, aCount);
cout Array b contains:" endl;
printArray(b, bCount);
cout Array c contains:" endl;
printArray(c, cCount);
cout Array d contains:" endl;
printArray(d, dCount, dColumns);
}
Resposta
Ver o desenvolvimento.