转发声明的typedef指向类的指针

时间:2018-09-24 06:05:37

标签: c++ forward-declaration

我一直在想这个问题,我似乎无法解决这个问题。谁能分享有关我的问题和可能的解决方案的一些技术细节。

我所拥有的:
A.h

class A {
  typedef A* APtr;
};

Program.h

#include "A.h"

Class Test
{
  A::APtr _aPtr;
};

我想做的是消除在A.h中包含标头Program.h的需要,并希望使用一个前向声明从APtr声明类型定义的A.h向前声明。

希望我已经澄清了我的问题。

谢谢

1 个答案:

答案 0 :(得分:2)

如果您唯一的目标是从#include A.h中删除Program.h,而您只需要对A内部的Program.h进行指针访问,则只需向前声明该类即可,并直接使用指针类型。

Program.h

class A;

class Test
{
  A* _aPtr;
};

正如@Swordfish在您的问题下的评论中所述,您不能使用前向声明来访问类中的成员。