Jak w temacie. Mam zadanko które musi być zrobione konkretnie tak jak przedstawiam. Jest sobie funkcja z class T, przyjmująca tablice int i double a zwracająca najwyższą wartość z tychże tablic. Oraz specjalizacja tej tablicy przyjmująca tablicę wartości typu char zwracająca adres najdłuższego łańcucha znaków.
Popełniłem oto taki kod... i utknąłem w punkcie gdzie wyświetla mi tablicę char ale adresy komórek oraz zwraca jak poprzednie wartość zamiast adresu. Prosiłbym o jakąś podpowiedź gdzie robię błąd.
#include <iostream>
using namespace std;
template <class T>
T maxn(T *ar, int size);
template <> char maxn<char>(char *ar, int size);
int main(){
double dbar[4] = {5.2, 3.1, 3.5, 0.1};
int inar[5] = {2,5,1,7,4};
char *arch[5][5]={"aaa","bbbb","cccc","d","eee"};
cout << "Tablica double: ";
for(int i=0; i<4; i++)
cout << dbar[i] << " ";
cout << endl << "Jej najwyzsza wartosc to - " << maxn(dbar, 4);
cout << "\n\nTablica int: ";
for(int i=0; i<5; i++)
cout << inar[i] << " ";
cout << endl << "Jej najwyzsza wartosc to - " << maxn(inar, 5);
cout << "\n\nTablica char: ";
for(int i=0; i<5; i++)
cout << arch[i] << " ";
cout << endl << "Jej najwyzsza wartosc to - " << maxn(*arch, 5);
return 0;
}
template <class T>
T maxn( T *ar, int size){
T *temp=new T;
*temp=ar[0];
for(int i=1; i<size; i++)
*temp = (*temp > ar[i]) ? *temp : ar[i];
return *temp;
}