C++ 我们如何在那个类中使用运算符?

C++ 我们如何在那个类中使用运算符?,c++,class,operator-keyword,C++,Class,Operator Keyword,我想在类中编写一个函数,使用我稍后在该类中定义的运算符。但我不知道如何向运算符显示现在必须使用x,y的值。 我看到有人在php中使用$this->func_名称。但在这里我不知道 class Point { public: int x; int y; bool operator==(Point p) { if (x == p.x && y == p.y) return 1; retur

我想在类中编写一个函数,使用我稍后在该类中定义的运算符。但我不知道如何向运算符显示现在必须使用x,y的值。 我看到有人在php中使用$this->func_名称。但在这里我不知道

class Point
{
  public:

    int x;
    int y;

    bool operator==(Point p)
    {
        if (x == p.x && y == p.y)
            return 1;
        return 0;
    }

    bool searchArea(vector <Point> v)
    {
        for (int i = 0; i < v.size(); i++)
            if (v[i] == /* what ?? */  )
                return 1;
        return 0;
    }
};

int main()
{
    //...
.
.
. 
    if (p.searchArea(v))
       //...
}
你在哪里有什么你想要*这个

你有的地方/*什么??*/你想要*这个

我看到了两种方法:

 if ( *this == v[i] )
 if ( operator==(v[i]) )
这是指向当前对象的指针*这是对当前对象的引用。由于比较运算符接受引用,因此必须取消对该指针的引用。或者您可以直接调用member函数,隐式地传递它。

我看到了两种方法:

 if ( *this == v[i] )
 if ( operator==(v[i]) )
这是指向当前对象的指针*这是对当前对象的引用。由于比较运算符接受引用,因此必须取消对该指针的引用。或者,您可以直接调用成员函数,它可以隐式传递。

< P> C++中的指针是指向当前对象的指针。若要访问实际对象,需要添加与Java不同的反引用操作符*。例如:*this.x

< C++中的这个指针是指向当前对象的指针。若要访问实际对象,需要添加与Java不同的反引用操作符*。例如:*this.x


bool操作符==点p const同样,向量应该通过const向量传递,searchArea也应该是一个const函数,并且应该返回true和false。更好的是:bool操作符==const点p constbool操作符==点p const同样,向量应该通过const向量传递,searchArea也应该是一个const函数,并且应该返回true和false。更好的是:bool操作符==常量点&p常量谢谢!但为什么要指向这一点呢?我的意思是为什么*这个而不是这个?这不是指向这个的指针,而是取消引用这个指针来访问它指向的对象。谢谢!但为什么要指向这一点呢?我的意思是为什么*这个而不是这个?这不是指向这个的指针,而是取消引用这个指针来访问它指向的对象。