У меня есть простая идея, вот как:
Создайте структуру, как обычно, и создайте простую функцию, которая ее инициализирует:
struct Foo{...};
void Default(Foo &obj) {
// ... do the initialization here
}
Если у вас есть несколько структур, вам разрешено в C ++ перегружать функцию, поэтому вы можете иметь много функций с именем «default», каждая из которых инициализирует свой собственный тип, например:
struct Foo { //... };
struct Bar { //... };
void Default(Foo &obj) {...}
void Default(Bar &obj) {...}
Компилятор C ++ будет знать, когда вызывать первую или вторую перегрузку, основываясь на параметре. & Делает ссылку на obj на любой заданный вами параметр, поэтому любые изменения, внесенные в obj, будут отражены в переменной, которую вы указали в качестве параметра.
Edit:
У меня также есть идея, как указать некоторые параметры, вы можете сделать это с помощью параметров по умолчанию. Вот как это работает:
Например, вы следующая функция; Вы можете указать значения по умолчанию для таких параметров:
void Default (Foo &obj, int number_of_something = 0, int some_other_param = 10)
{ ... }