以下结构应该将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