我的错?书的错?还是我的编译器的错?
#include <iostream>
using namespace std;
template <typename T>
void showarr (T arr[] , int n);
template <typename T>
void showarr (T * arr[] , int n);
struct debts
{
char name [50];
double amount;
};
int main ()
{
int things[6] = {13,31,103,301,310,130};
struct debts mr_E[3] =
{
{"Ima wolfe" , 2400.0},
{"Ura Foxe" , 1300.0},
{"Iby Stout", 1800.0}
};
double * pd[3];
for (int i = 0 ; i< 3 ;i++)
pd[i] = &mr_E [i].amount;
cout << "things: \n";
showarr (things,6);
cout << "debts: \n";
showarr ( pd, 3); //A 处
return 0;
}
template <typename T>
void showarr (T arr[] , int n)
{
cout << "Template A \n";
for(int i = 0 ; i < n ; i++ )
cout << arr[i] << ' ';
}
template <typename T>
void showarr (T * arr[] , int n)
{
cout << "Template B\n";
for ( int i =0 ;i< n; i++)
cout << *arr [i] << ' ';
}
其实 这个是c++ primer Plus 上面的一个例子
我把我的程序和例子对照了 没有出入
但是编译时在A处提示错误 error C2667: 'addarr' : none of 2 overload have a best conversion
是书上面错了么?还是我写错了?还是编译器的问题?
我的是VC++6 SP6
请好心的大大们用30秒拿别的编译器编译一下 看能否通过。
70分全部奉上!