#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
template<class T1>
class Person
{
public:
Person(int len)
{
this->len = len;
this->t = new T1[len];
if (!this->t)
{
cout << "失败" << endl;
exit(1);
}
for (int i = 0; i < len; i++)
{
(this->t)[i] = 0;
}
}
Person(int len, T1* t)
{
this->len = len;
this->t = new T1[len];
if (!this->t)
{
cout << "失败" << endl;
exit(1);
}
strcpy(this->t, t);
}
T1& operator[](int i);
~Person()
{
if (this->t != NULL)
{
delete[] t;
t = NULL;
}
}
public:
T1* t;
int len;
};
template<class T1>
T1& Person<T1>::operator[](int i)
{
if (i < 0 || i > this->len - 1)
{
cout << "越界了" << endl;
exit(2);
}
return (this->t)[i];
}
void main()
{
Person<int> a1(10);
Person<char> a2(10, "123456789");
cout << "----------" << endl;
for (int i = 0; i < 10; i++)
{
a1[i] = i + 1;
}
for (int i(0); i < 10; i++)
{
cout << a1[i] << endl;
}
cout << "---------------" << endl;
cout << a2.t << endl;
return;
}
来源:https://www.cnblogs.com/seraphgabriel/p/9460262.html