親クラスの共有ポインターが関数の型を返すようにしてから、共有ポインターでなくても新しい子クラスを返すことはできますか? これらの状況で共有ポインターがどのように機能するかはわかりませんが、通常のポインターのように機能しますか? これが私の例です:
BaseEventPtr Actions::getEvent(const std::string& nodeName)
{
if(asLowerCaseString(nodeName) == "action")
return new ActionEvent(&m_interface);
return nullptr;
}
この場合、ActionEvent は BaseEvent のサブクラスです。
乾杯!