c++设计一个数组类模板 Array<T>,其中包含重载下标运算符函数,并由此产生模板类 Array<int>和Array<char>,使用一些测试数据对其进行测试。
时间: 2023-06-18 11:08:12 浏览: 114
用c++编写的运算符重载程序
以下是一个简单的实现:
```c++
#include <iostream>
#include <cstdlib>
template <typename T>
class Array {
public:
Array(int size) {
if (size <= 0) {
std::cerr << "Invalid array size!" << std::endl;
exit(1);
}
m_data = new T[size];
m_size = size;
}
~Array() {
delete[] m_data;
}
T& operator[](int index) {
if (index < 0 || index >= m_size) {
std::cerr << "Invalid array index!" << std::endl;
exit(1);
}
return m_data[index];
}
private:
T* m_data;
int m_size;
};
int main() {
Array<int> intArray(10);
for (int i = 0; i < 10; i++) {
intArray[i] = i;
}
for (int i = 0; i < 10; i++) {
std::cout << intArray[i] << " ";
}
std::cout << std::endl;
Array<char> charArray(5);
for (int i = 0; i < 5; i++) {
charArray[i] = 'a' + i;
}
for (int i = 0; i < 5; i++) {
std::cout << charArray[i] << " ";
}
std::cout << std::endl;
return 0;
}
```
这个模板类使用动态内存分配来存储数组数据,可以处理正常的数组下标,并且可以检测无效的下标和大小。在主函数中,我们创建了一个整数类型的数组和一个字符类型的数组,并对其进行了简单的测试。
阅读全文