C++ 模板类 Array 实现:类型参数优化
C++ 模板类 Array 实现:类型参数优化
以下代码展示了使用 C++ 模板实现一个通用的数组类 Array:c++#include
template
private: T* m_arr; int m_size;
public: Array(int size) : m_size(size) { m_arr = new T[size]; memset(m_arr, 0, sizeof(T) * size); } ~Array() { delete[] m_arr; }
T& operator[](int index) { return this->m_arr[index]; }
int size() { return m_size; }};
template
template
int main() { Array
cin >> Aa;
cout << Aa << endl;}
问题: 在上面的代码中,T1 可以改成 T 吗?为什么?
解答: 可以改成'T',因为在这个代码中,模板参数'T1'和类模板的类型参数'T'没有任何区别,它们都代表同一个类型。所以可以将'T1'改为'T',代码仍然能够正常工作。
**代码优化:**c++#include
template
private: T* m_arr; int m_size;
public: Array(int size) : m_size(size) { m_arr = new T[size]; memset(m_arr, 0, sizeof(T) * size); } ~Array() { delete[] m_arr; }
T& operator[](int index) { return this->m_arr[index]; }
int size() { return m_size; }};
template
template
int main() { Array
cin >> Aa;
cout << Aa << endl
原文地址: http://www.cveoy.top/t/topic/b1Q5 著作权归作者所有。请勿转载和采集!