一个简单的编程 哪里出现了问题?

 定义动态数组类模板,包括表示数组元素个数和数组元素首地址的两个数据成员,一个带参数的构造函数和一个无参的构造函数(默认元素个数为10),一个用于输出数组元素的成员函数,同时要求重载<<运算符,实现使用cout对象输出动态数组?

//template1.h
#include"stdafx.h"
#include<iostream>
#include<string>
using namespace std;
#ifndef ARRAY
#define ARRAY
const int len=10;
template<class T>
class Array
{
public:
	Array()
		{
	m_len=10;

          }
	Array(int len)
		{
	m_len=len;
	m_a=new T[len];
}
	void reset();
friend	ostream& operator<<(ostream& out, const Array<T>&value)
	{
    for (int i = 0; i < value.m_len; i++)
        out << value.m_a[i] ;
    return out;
}

private:
	int m_len;
	int *m_a;
};




template<class T>
void reset()
{
	cout<<"请输入数组里的元素:"<<endl;
	for(int i=0;i<len;i++)
		cin>>m_a[i];
}

#endif

//11.5.cpp
#include"stdafx.h"
#include"template1.h"
#include<iostream>
using namespace std;


int main()
{   Array<int>A(10);

A.reset();
cout<<"输出数组中的元素"<<endl;
cout<<A;

return 0;
}

 

无参构造数组也要初始化啊