我想爲其中一個成員函數可選參數。當沒有提供參數時,它將使用成員變量。如何在C++中使用成員變量作爲默認參數?
然而,當我試圖編譯它,它顯示「錯誤:無效使用非靜態數據成員的對象:: initPos「的」
只是爲了隔離問題,我試着違約int類型它編譯得很好。 我想知道我的代碼有什麼問題,以及如何使用成員函數作爲默認值。
謝謝你的幫助!
Object.h
class Object
{
public:
...
void MoveTo(double speed, Point position);
protected:
Point initPos;
Point currPos;
};
Object.c
void Object::MoveTo(double speed, Point position = initPos)
{
currPos = postion;
}
Point.h
class Point
{
...
private:
double x;
double y;
double z;
};
你的問題讓我這個產卵一個:http://stackoverflow.com/questions/9286801/valid-expressions-for-default-function-arguments – 2012-02-15 01:42:56