Chcę, aby argument dla jednej z funkcji członka opcjonalne. Gdy nie podano argumentu, użyłby zmiennej składowej.Jak używać zmiennej składowej jako domyślnego argumentu w C++?
Jednakże, gdy próbowałem go skompilować pokazuje „błąd: Nieprawidłowe użycie non-statycznego członka danych«Object :: initPos»”
Wystarczy, aby wyizolować problem, próbowałem zalegających typu int i skompilował się dobrze. Zastanawiam się, jaki jest problem z moim kodem i jak mogę użyć funkcji członka jako wartości domyślnej.
Dziękuję za pomoc!
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;
};
Twoje pytanie mnie tarło to jedno: http://stackoverflow.com/questions/9286801/valid-expressions-for-default-function-arguments –