运算符() 作为矩阵类的下标
Operator() as a subscript for a Matrix class
通过关注这个网站C++常见问题解答,我已经为我的矩阵类重载了一个运算符()。这是我的班级:
class Matrix
{
public:
inline float& operator() (unsigned row, unsigned col)
{
return m[row][col];
}
private:
float m[4][4];
};
现在我可以像这样在主函数中使用它:
int main()
{
Matrix matrix;
std::cout << matrix(2,2);
}
但现在我想像这样用指针使用它:
int main()
{
Matrix matrix;
Matrix* pointer = &matrix;
std::cout << pointer(2,2);
}
并且编译器告诉指针不能用作函数。有什么解决办法吗?
你需要取消引用它:
(*pointer)(2,2)
或者,您需要通过全名呼叫接线员:
pointer->operator()(2,2)
相关文章:
- 一组值的零开销下标运算符
- 如何重载下标运算符 [] 以引用 2d STL 数组?
- 有什么理由不扩展 std::set 以添加下标运算符吗?
- 在继承的模板类中使用下标 [] 运算符
- 为什么函数的任何索引处的下标运算符在C++中总是返回1
- c++下标运算符到下级类向量
- 数组下标运算符 ([ ]) 对数组有什么作用?
- 双标具有下标运算符的原因是什么?
- 基成员的重载下标运算符
- SFINAE 为什么我没有检测到 std::vector 的下标运算符?
- 如何重载下标运算符以返回可以是左值的可选值?
- C++下标运算符的继承规则
- 使用带有下标运算符的赋值运算符将值分配给 std::map
- 如何从重载的下标 [] 运算符返回 std::unique_ptr&?
- 为下标运算符和函数调用运算符提供默认参数
- C++ 下标运算符
- 将类实例作为指针传递,并在此指针上使用过载的下标运算符
- 如何为模板类的下标运算符
- 如何在提升 lambda 中使用下标运算符
- "飞机"不提供下标运算符是什么意思"