我有一个包含一个大数组的类。我想将数组设为私有,但我需要从中读取大量数据,但要确保它永远不会被类外的任何东西改变。有什么方法可以引用一个数组,使它可以被读取,但不能被写入?
编辑:这个类将被分发,我想防止对所有私人成员的未经授权的访问。这似乎使得任何类型的引用都成为不可能。
这样的事情会做吗?
class ReadOnlyArray
{
private:
float mData[SIZE][SIZE];
public:
float Get( int i, int j ) const { return mData[i][j]; }
};
是的,您可以返回对 的 const 引用vector<vector <T>>
(您正在使用向量,而不是自己分配内存,对)。
就像是:
class MyCLass
{
private:
vector<vector<T>> v;
...
public:
...
const vector<vector<T>>& getVector() const { return v; }
};
将数组设为私有。创建公共函数以从数组中检索和返回数据。