私はクラスをテストしていて、このクラスを作りました
class Point
{
private:
int x,y;
public:
void setit(int new_x,int new_y);
void set_x(int new_x);
void set_y(int new_y);
int get_x();
int get_y();
};
今、私は先に進んで、すべてのパブリック関数の関数定義を書きましたが、
void set(int new_x,int new_y);
関数定義を書いているときに戸惑ったことがあります
void Point::setit(int new_x, int new_y){
Point::set_x(new_x);
Point::set_y(new_y);
}
void Point::setit(int new_x, int new_y){
set_x(new_x);
set_y(new_y);
}
前の2つの関数定義がまったく同じ効果を持っていることに気づきました。
::演算子がないと、クラス外の関数が検索されるため、機能しないと思いました。これは、それらがPointクラスにあることを意味しなくなったためです。
なぜ両方が同じ効果を持つのか誰かが説明できますか?
ありがとうございました。