Я играю с аргументами по умолчанию для своего класса Settings в моем проекте, поэтому у меня объявлено немного меньше методов.
Например, у меня объявлены следующие методы:
class Settings
{
// [..]
int getCurrentUserID(); // returns current user id
// you specify the user id
int setSetting( int value, int user_id );
// no user specified, use the current one, overloads the previous when called
// with only 1 argument
int setSetting( int value );
}
То, что я хотел бы иметь, это упрощенная версия:
class Settings
{
// [..]
int getCurrentUserID(); // returns current user id
// automatically selects the current user if no ID is provided
int setSetting( int value, int user_id = getCurrentUserID() );
}
Но я получаю эту ошибку при компиляции:
cannot call member function ‘int Settings::getCurrentUserID()’ without object
Как я могу сказать компилятору использовать текущий экземпляр (который доступен через this ) объекта Setting для получения значения по умолчанию?
Кстати, это разрешено?