共享指针类型之前缺少分号

时间:2015-03-05 15:35:35

标签: c++

我迫不及待地想要解决这个微不足道的痛苦问题 我有一个班级

///A.h
class A
{
   //declare something
};
///A.cpp
//implement that something of A

然后是另一个班级

///B.h
class A;
class B
{
private:
   A_PTR aptr; //Missing ';' before aptr
public:
   A_PTR getA();
};
///B.cpp
typedef std::shared_ptr<A> A_PTR;
//implement all B's methods

为什么我在A_PTR上收到错误消息,因为在B类中声明了aptr?

1 个答案:

答案 0 :(得分:3)

因为尚未定义A_PTR。您需要将定义移到您使用它的第一个点之上:

///B.h
class A;
typedef std::shared_ptr<A> A_PTR;
class B
{
private:
   A_PTR aptr;
public:
   A_PTR getA();
};