C++实现动态数组重载
时间: 2023-12-26 17:05:18 浏览: 22
以下是C++实现动态数组重载的示例代码:
```cpp
template <typename T>
class Array {
public:
// 构造函数
Array(int size = 0) {
m_size = size;
m_data = new T[size];
}
// 拷贝构造函数
Array(const Array& other) {
m_size = other.m_size;
m_data = new T[m_size];
for (int i = 0; i < m_size; i++) {
m_data[i] = other.m_data[i];
}
}
// 析构函数
~Array() {
delete[] m_data;
}
// 重载[]运算符
T& operator[](int index) {
return m_data[index];
}
// 重载T*运算符
operator T* () const {
return m_data;
}
// 取数组的大小
int ListSize() const {
return m_size;
}
// 修改数组大小
void Resize(int sz) {
T* newData = new T[sz];
int minSize = (sz > m_size) ? m_size : sz;
for (int i = 0; i < minSize; i++) {
newData[i] = m_data[i];
}
delete[] m_data;
m_data = newData;
m_size = sz;
}
private:
T* m_data;
int m_size;
};
```