cannot convert from 'const int' to 'int []'是什么意思啊

来源:百度知道 编辑:UC知道 时间:2024/06/03 17:05:19
#include <iostream.h>
#define N 5
template <class T>
class array
{
T arr[N];
public:
array(T *p)
{int i=0;for(i=0;i<N;i++){arr[i]=*p;p++}}
void print(){int i=0;for(i=0;i<N;i++)cout<<arr[i]<<endl;}
};
main()
{
int a[]=(1,5,4,3,2);
array<int> marr(a);
marr.print();
}
error C2440: 'initializing' : cannot convert from 'const int' to 'int []'怎么修改啊?

>error C2440: 'initializing' : cannot convert from 'const int' to 'int []'怎么修改啊?

int a[]=(1,5,4,3,2);
等号右边的括号应该用花括号:
int a[]={1,5,4,3,2};
用花括号括起来的才被看成一组数, 圆括号括起来的一组数只相当于最后一个数, 就是说, 你的写法相当于 int a[]=2, 把一个数初始化给一个数组, 就出现所述错误信息.

另外, p++后面好象少了个分号.

无法从常量整型转换到整型数组。