class Interface
{
};
class Class : public Interface
{
};
class Foo
{
public:
std::vector<std::shared_ptr<Interface>>& GetInterfaces()
{
return *(std::vector<std::shared_ptr<Interface>>*)(&m_data);
//return m_data;
}
private:
std::vector<std::shared_ptr<Class>> m_data;
};
これは機能しますが、醜くて恐ろしいです。それを行うためのより良い/安全な方法はありますか? モジュールが属しているため、m_data
タイプを作成したくありません。(および) は、機能についてのみ知っている必要がある別のモジュールとやり取りするために実装されています。std::vector<std::shared_ptr<Interface>>
Foo
Class
Interface
Foo::GetInterfaces()
Interface
ここで不明な点があれば教えてください。それは理にかなっていますが、しばらくの間、この問題に頭を悩ませてきました。