Есть не статический метод:
int make_dir(const std::string& name, Dir* cur_dir = _cur)
{///}
_cur - приватный член. Этот код нельзя компилируется, но поясняет мою задумку: если функция вызвана с одним аргументом, то cur_dir инициализируется _cur объекта, с которого был вызван. Можно сделать так
int make_dir(const std::string& name, Dir* cur_dir = nullptr)
{
if(cur_dir == nullptr)
cur_dir = _cur;
///
}
Но выглядит это не особо правильно, да и методов таких будет многою. Есть ли способ корректно записать по умолчанию?
Нет, нестатические поля объекта не могут выступать в качестве аргументов по умолчанию. Поэтому остается либо ваш вариант с if
, либо перегрузка данного метода в двух вариантах: с одним и с двумя параметрами
int make_dir(const std::string& name, Dir* cur_dir) { ... }
int make_dir(const std::string& name) { return make_dir(name, _cur); }
Давно учил С++, уже его подзабыл, но сейчас необходимо решить заданиеБуду благодарен любой помощи!
Создаю на плюсах нестандартное окно по png рисунку через UpdateLayeredWindowКак на этом окне отобразить стандартные контролы? В частности меня интересуют...