Функция C++, какое значение по умолчанию я могу указать для объекта?

Я новичок в программировании на 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(); // значения по умолчанию для обоих

5
задан Brad Fox 3 May 2012 в 18:01
поделиться