我需要创建一个模板,因为我不知道它是什么数组。它的大小必须是构造函数中传递的大小。所以这就是我得到的,我遇到了各种各样的错误。我是 C++ 的初学者,所以非常感谢您的帮助:)
template <typename T, int N>
class Array
{
public:
T& operator[](int index)
{
return data[index];
}
private:
int size;
T *data[N];
};
我想你明白我想做什么。如您所见,我还需要重载下标运算符。不确定我是否需要引用或指针或什么。我确实有一个构造函数,但它不能正常工作。
这是一个更正后的版本,其中还有一个示例 main:
#include <iostream>
using namespace std;
template <typename T, int N>
class Array
{
public:
T& operator[](int index)
{
// add check for array index out of bounds i.e. access within 0 to N-1
return data[index];
}
Array() {
data = new T[size = N];
}
~Array() {
if (data)
delete [] data;
}
private:
int size;
T *data;
};
int main(void) {
Array<int, 4> a;
a[0] = 5;
cout << a[0] << endl;
return 0;
}
我是一名优秀的程序员,十分优秀!