コンストラクタにパラメータが必要なクラスのデフォルトインスタンスを提供するための標準パターン/ベストプラクティスの方法がC++にありますか?例えば、このような使用可能:設定可能なデフォルトインスタンスの提供
- 1)及び2)が同じインスタンス3)が示すよう
- で動作
int main() { //At startup: //Parameterize default instance with some runtime Data Foo::initDefault(getConfigFromFile().getDefaultFooVal()); //1) Use default instance somewhere else in the code: Foo::getDefault().doSomething(); //2) Foo::getDefault().doSomethingElse(); //3) somewhere else in the code, maybe even before the call to initDefault() Foo myFoo(5); myFoo.doSomething(); } void bar(const Foo& foo = Foo::getDefault()) { //... do something with foo }
注意こと、
Foo
は - 私は避けたいシングルトンありませんデフォルトのコンストラクタを提供する
このインスタンスはプログラム全体で共有されますか?別のインスタンスを与えることの延長とそれは一種のsingletoneですか? –
@HumamHelfawi:かなり有り – MikeMB