私はこのようなことを達成しようとしています:
class Base
{
public:
Base(string S)
{
...
};
}
class Derived: Base
{
public:
int foo;
string bar()
{
return stringof(foo); // actually, something more complex
};
Derived(int f) : foo(f), Base(bar())
{
};
}
foo が初期化される前に派生コンストラクターで bar() が呼び出されるため、これは私が望むようには機能しません。
foo をパラメーターとして取る bar() に似た静的関数を追加することを検討しました-そしてそれを初期化リストで使用しましたが、これを掘り下げるために使用できる他の手法があるかどうか尋ねたいと思いました。 ..
編集: フィードバックをお寄せいただきありがとうございます。ここでは、静的関数を処理する方法を示します。静的関数と非静的関数の間のオーバーロードが巧妙すぎるかどうかはわかりませんが...
class Derived: Base
{
public:
int foo;
static string bar(int f)
{
return stringof(f); // actually, something more complex
}
string bar()
{
return bar(foo);
};
Derived(int f) : Base(bar(f)) , foo(f)
{
};
}