返回类中的只读二维数组

时间:2013-08-20 23:13:30

标签: c++ arrays

我有一个包含大数组的类。我想将数组设为私有,但我需要从中读取大量数据,但要确保它永远不会被类外的任何内容更改。有没有办法引用一个数组,以便可以从中读取,但不能写入?

编辑:此类将分发,我想防止未经授权访问所有私人成员。这似乎使得任何类型的引用都不可能。

3 个答案:

答案 0 :(得分:1)

会这样吗?

class ReadOnlyArray
{
private:
    float mData[SIZE][SIZE];
public:
    float Get( int i, int j ) const { return mData[i][j]; }
};

答案 1 :(得分:1)

是的,您可以返回vector<vector <T>>的const引用(您正在使用向量,而不是自己分配内存,对吧)。

类似的东西:

class MyCLass
{
  private:
    vector<vector<T>> v;
    ...
  public:
    ...
    const vector<vector<T>>& getVector()  const { return v; }
};

答案 2 :(得分:1)

将数组设为私有。创建公共函数以从数组中检索和返回数据。