Я хочу, чтобы аргумент для одной из функций-членов был опциональным. Если аргумент не задан, он будет использовать переменную-член.
Однако, когда я попытался скомпилировать его, он показывает "ошибка: недопустимое использование нестатического элемента данных" Object:: 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;
};