我被檢驗出類和我做了這個類使用(::)在類的成員函數的定義
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);
}
我DEF注意到,先前的兩個功能因此具有完全相同的效果。
我認爲沒有::運算這是行不通的,因爲它會搜索類之外的功能,因爲我已經不意味着他們在Point類
任何人都可以解釋爲什麼他們都有同樣的效果?
謝謝。
你能解釋爲什麼你認爲他們會有不同的表現嗎? – Johnsyweb
@Johnsyweb我認爲沒有::運算符它不會工作,因爲它會在類之外搜索這些函數,因爲我不再表示它們在Point類中 –
簡短回答:類成員函數定義的主體是該類的*範圍*的一部分。 – aschepler