3 c++ oop methods variable-assignment assignment-operator
我是 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;
}
};
Run Code Online (Sandbox Code Playgroud)
如您所见,我需要使用此方法来操作矩阵中的索引
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
Run Code Online (Sandbox Code Playgroud)
然后我的问题是,有没有办法把它变成这个?
obj.index(0,0) = 10;
Run Code Online (Sandbox Code Playgroud)
有没有办法使用“=”或赋值运算符来代替向方法添加一个额外的参数?
是的,你可以index返回对元素的引用,(比如如何std::vector::operator[]和std::vector::at做,)例如
dataType& index(int row, int column) {
return mainPtr[row+(size_side*column)];
}
Run Code Online (Sandbox Code Playgroud)
然后你可以分配给返回值,如
obj.index(0,0) = 10;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56 次 |
| 最近记录: |