Quiero hacer un argumento para una de las funciones miembro opcional. Cuando no se proporciona ningún argumento, usaría una variable miembro.¿Cómo usar una variable miembro como un argumento predeterminado en C++?
Sin embargo, cuando traté de compilar se muestra "error: Uso no válido de miembro de datos no estáticos 'Object' :: initPos"
Sólo para aislar el problema, he intentado incumplir un tipo int y compiló bien. Me pregunto cuál es el problema con mi código y cómo podría usar una función miembro como valor predeterminado.
¡Gracias por tu ayuda!
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;
};
Su pregunta me hizo desovar éste: http://stackoverflow.com/questions/9286801/valid-expressions-for-default-function-arguments –