我需要实现一个安全的数组类,在访问底层 C 数组时控制索引:
template <typename T, int N> class SafeArray
{
public:
T &operator[](int index)
{
assert(0 <= index && index < N);
return m_data[index];
}
private:
T m_data[N];
};
而不是bool a[3];
,现在我写SafeArray<bool, 3> a;
。
我如何支持数组初始化bool b[3] = {false};
?我的意思是我应该怎么做才能得到建成b.m_data[] = {false, false, false}
后?SafeArray<bool, 3> b;
我想我应该添加一个构造函数SafeArray
,但是那个构造函数的主体是什么?模板参数T
可以是任何东西,不一定bool
。我正在使用 C++11 之前的版本。