【发布时间】:2015-10-27 08:57:17
【问题描述】:
我正在尝试创建一个使用运算符 [] 的类,例如
MyClass[x][y]
它应该根据我在类中定义的函数中调用的内容返回一个值。到目前为止我所拥有的是:
MyClass.h
class MyClass{
public:
// return one value of the matrix
friend double operator[][] (const int x, const int y);
}
我什至不认为我的语法是正确的,我如何在 MyClass.cpp 中编写这个函数来定义它应该返回什么值?
喜欢:
MyClass::friend double operator[][] (const int x, const int y)
{
// insert code here
}
试过了,但一直说错误。我相信那里是一团糟......
非常感谢,
【问题讨论】:
-
您不能声明
operator[][]。你需要两个类重载operator[],才能达到这个效果。 -
只能重载已有的运算符,而C++没有
[][]运算符。 -
您对
friend的使用也有问题。像你这样声明一个函数friend意味着它是一个非成员函数,但你试图以一种语法非法的方式使用friend关键字将它定义为一个成员函数。
标签: c++ class operator-overloading