Я новичок в программировании на C++, поэтому, пожалуйста, не будьте слишком строги :) . Минимальное описание моей проблемы иллюстрирует следующий пример. Скажем, у меня есть объявление этой функции в заголовочном файле:
int f(int x=0, MyClass a); // gives compiler error
Компилятор ругается, потому что параметры, следующие за параметром со значением по умолчанию, также должны иметь значения по умолчанию.
Но какое значение по умолчанию я могу дать второму параметру?
Идея состоит в том, что функция может быть вызвана с менее чем двумя аргументами, если остальные не имеют отношения к конкретному случаю, поэтому все следующее должно выполняться:
MyClass myObj; // create myObj as an instance of the class MyClass
int result=f(3,myObj); // explicit values for both args
int result=f(3); // явный для первого, по умолчанию для второго arg
int result=f(); // значения по умолчанию для обоих