// Case A
class Point {
private:
int x;
int y;
public:
Point(int i = 0, int j = 0); // Constructor
};
Point::Point(int i, int j) {
x = i;
y = j;
cout << "Constructor called";
}
// Case B:
class Point {
private:
int x;
int y;
public:
Point(int i, int j); // Constructor
};
Point::Point(int i = 0, int j = 0) {
x = i;
y = j;
cout << "Constructor called";
}
問題>案例A和案例B在VS2010中都沒有問題編譯。C++函數默認參數的位置
原文我只假設案例A的作品,因爲我記得默認參數應該在聲明函數的地方引入,而不是定義的位置。有人能糾正我嗎?
謝謝
看到這個:http://stackoverflow.com/q/4989483/811335 –
這是一個問題的從幾重複幾天前,原來C++標準有一個缺陷,使得這個代碼在技術上是合法的,但是卻給實現帶來了不必要的負擔。我會看看我能否找到它。 –
[默認參數,gcc vs clang]可能的重複(http://stackoverflow.com/questions/18313509/default-argument-gcc-vs-clang) –