Java コードを見て、C++ でどのように実装されるかを確認したいと思います。
public interface IThing {
public void method1();
// more (virtual methods)
}
public interface IThingFactory {
public IThing getThing(ThingType thing);
}
public interface IFactory<T> {
public T createInstance();
}
public class A {
A(ThingType thingType, IFactory<IThing> thingFactory, ...) {
// ...
}
static A create(ThingType thingType, final IThingFactory thingFactory) {
return new A(new IFactory<IThing>() {
{
public IThing createInstance()
{
return thingFactory.getThing(thingType);
}
}, new IFactory< ... >()
{
public IAnother createInstance()
{
return anotherFactory.getAnother(anotherType);
}
});
}
// ...
}
上記のコード(完全ではありません)が、私が見つけようとしていることを示していることを願っています。私の問題は、それが C++ でどのように行われるかです。主に、匿名関数の実装のようにcreateInstance
、コンストラクター呼び出しの内部の実装を理解していません (私にはまだ不完全なようです)。(抽象) 型のオブジェクトが定義されるように C++ でメソッドをA
実装する方法がわかりません。この方法では (仮想) メソッドはまだ純粋であるためです。それとも、ある種のラムダ関数でそれを行うことができますか?createInstance
IFactory<IThing>
createInstance
これを C++ でコーディングする方法を教えてもらえますか? 情報をありがとう!