C++,有没有办法 (object.method(0,0) = 10) 使用赋值运算符而不是额外的参数?
C++, is there a way to (object.method(0,0) = 10) use assignment operator instead of an extra parameter?
我是 C++ 的新手,这是我在计算机科学领域的第一年并且...
我只想问问...有没有什么办法可以让我在标题中的内容起作用?...
为了进一步解释我的意思,这里有一个例子:
template <class dataType>
class squareMatrix{
private:
int size_side;
dataType *mainPtr;
public:
squareMatrix(int n){
this->size_side = n;
mainPtr = new dataType[n*n];
}
void index(int row, int column, dataType value){
mainPtr[row+(size_side*column)] = value;
}
};
所以你可以看到我需要使用这个方法来操作矩阵中的索引
squareMatrix<int> obj(2); // created a matrix of 2x2 size
obj.index(0,0,10); // here is the method to store the number 10 in the 0,0 index
然后我的问题,有没有办法把它变成这样?
obj.index(0,0) = 10;
而不是向方法中添加一个额外的参数,有没有办法改用“=”或赋值运算符?
是的,您可以 index
returning 对元素的引用(就像 std::vector::operator[]
and std::vector::at
那样),例如
dataType& index(int row, int column) {
return mainPtr[row+(size_side*column)];
}
然后你可以像
一样分配给return值
obj.index(0,0) = 10;
我是 C++ 的新手,这是我在计算机科学领域的第一年并且... 我只想问问...有没有什么办法可以让我在标题中的内容起作用?...
为了进一步解释我的意思,这里有一个例子:
template <class dataType>
class squareMatrix{
private:
int size_side;
dataType *mainPtr;
public:
squareMatrix(int n){
this->size_side = n;
mainPtr = new dataType[n*n];
}
void index(int row, int column, dataType value){
mainPtr[row+(size_side*column)] = value;
}
};
所以你可以看到我需要使用这个方法来操作矩阵中的索引
squareMatrix<int> obj(2); // created a matrix of 2x2 size
obj.index(0,0,10); // here is the method to store the number 10 in the 0,0 index
然后我的问题,有没有办法把它变成这样?
obj.index(0,0) = 10;
而不是向方法中添加一个额外的参数,有没有办法改用“=”或赋值运算符?
是的,您可以 index
returning 对元素的引用(就像 std::vector::operator[]
and std::vector::at
那样),例如
dataType& index(int row, int column) {
return mainPtr[row+(size_side*column)];
}
然后你可以像
一样分配给return值obj.index(0,0) = 10;