08/06/16 07:38:23
これでいいんだよね?
class A {
public:
virtual ~A() { }
virtual void Foo() = 0;
};
class X {
public:
X();
A* NewA();
private:
class Impl* impl_;
};
class X::Impl {
public:
A* NewA() {
return new AImpl;
}
private:
class AImpl : public A {
public:
virtual void Foo();
};
};
X::X() : impl_(new Impl) { }
A* X::NewA() { return impl_->NewA(); }