以下結構應該將shared_ptr保存到抽象基類(Shape)。但是,當我嘗試寫這個,我得到error C2065: 'Shape' : undeclared identifier
。shared_ptr抽象基類(成員變量)是一個未聲明的標識符
所以我知道我不能創建Shape的實例,只有衍生的Spheres,Boxes等的實例。但是爲什麼我不能使用shared_ptr來抽象基類?
#include <memory> // std::shared_ptr
#include "shape.hpp"
struct Hit {
// …
std::shared_ptr<Shape> m_shape; // Shape that was hit
};
應該指出的確實是Shape類正在使用Hit結構,反之亦然。
我猜這個問題可能是'shape.hpp'。 – Galik
我打賭一個'shape.hpp'包含'hit.hpp'的韭菜。 – Quentin
@Quentin這是正確的。兩個文件確實包含對方。 – kleinfreund