定义动态数组类模板,包括表示数组元素个数和数组元素首地址的两个数据成员,一个带参数的构造函数和一个无参的构造函数(默认元素个数为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;
}