matrix类实现的权限问题
											 程序代码:
程序代码:class matrix {
private:
    vector<vector<float>>data;
    int rows;
    int cols;
public:
    matrix(int _rows, int _cols) :rows(_rows), cols(_cols), data(rows, vector<float>(cols, 0.0f)) {}
    matrix(const vector<vector<float>>& input) :data(input), rows(input.size()), cols(input[0].size()) {}
    int getCols()const { return cols; }
    int getRows()const { return rows; }
    void setValue(int i, int j, float value) { data[i][j] = value; }
    float& operator()(int i, int j) { return data[i][j]; }
    const float& operator()(int i, int j)const { return data[i][j]; }
    vector<float> operator *(const vector<float>& vec) const {
        if (cols != vec.size()) {
            throw invalid_argument("Matrix and vector dimensions do not match!");
        }
        vector<float> result(rows, 0.0f);
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < cols; j++) {
                result[i] += data[i][j] * vec[j];
            }
        }
        return result;
    }
};
matrix mat(3,3);
mat(0,0) = 1.0f;
为什么我这样写通过mat(0,0)赋值会报错,通过setValue同样会报错,把data从private拿到public又不会报错了										
					
	


 
											





 
	    

 
	
 
											
