適切な実装の集合を実体化するという目的のパターンで、AbstractFactoryとあんまり変わりません。
AbstractFactoryは委譲で行っていたことを、FactoryMethodパターンでは継承を使って行っている、と考えて良いんだと思います。
「これはAbstractFactory!こっちはFactoryMethod!」なんてはっきり区別する必要はあまり無いように感じます。
むしろ、適切な実装の集合を実体化するという目的に対して、できるだけ弱い関連である委譲を使い、どうしても継承を使わなければならないときだけ継承を使う、っていう指針を持つことの方が大事じゃないかなと思います。
ということで、今回はこちらです。
http://www.dofactory.com/Patterns/PatternFactory.aspx#_self2
書き直したのがこちらです。
https://github.com/TakahashiShuuhei/DesignPatternPractice/blob/master/FactoryMethod.cpp
"C++ではコンストラクタで仮想関数が使えない"ってのはどこかで読んだ気がしますがすっかり頭から抜けていて、結構悩みました。