C++ 指向类的前向声明typedef指针
我对这件事想了一段时间,但我似乎不能把我的头围绕在它上面。有没有人能分享一些关于我的问题和可能的解决方案的技术细节 我拥有的:C++ 指向类的前向声明typedef指针,c++,forward-declaration,C++,Forward Declaration,我对这件事想了一段时间,但我似乎不能把我的头围绕在它上面。有没有人能分享一些关于我的问题和可能的解决方案的技术细节 我拥有的: A.h class A { typedef A* APtr; }; #include "A.h" Class Test { A::APtr _aPtr; }; 程序.h class A { typedef A* APtr; }; #include "A.h" Class Test { A::APtr _aPtr; }; 我试图做的是消除在Pr
A.h
class A {
typedef A* APtr;
};
#include "A.h"
Class Test
{
A::APtr _aPtr;
};
程序.h
class A {
typedef A* APtr;
};
#include "A.h"
Class Test
{
A::APtr _aPtr;
};
我试图做的是消除在Program.h
中包含头A.h
的需要,并希望使用向前声明从A.h
中向前声明定义的类型APtr
希望我已经澄清了我的问题
谢谢如果您的唯一目标是从
Program.h
中删除#包括A.h
,并且只需要对Program.h
中的A
进行指针访问,那么只需向前声明类,并直接使用指针类型就足够了
程序.h
正如您问题下的评论中提到的@Swordfish,您不能使用转发声明来访问类内的成员。如果您的唯一目标是从
Program.h
中删除#包括a.h
,并且您只需要指针访问Program.h
中的a
,然后只需向前声明类,并直接使用指针类型就足够了
程序.h
正如您问题下的评论中提到的@Swardfish,您不能使用转发声明访问类内的成员。您不能。转发声明不足以访问成员。如果在
Test
中使用A*
而不是A::APtr\u APtr
,则使用类似class A的正向声明代码>之前声明的测试就可以了。谢谢回复。有什么解决方案可以在一个位置执行这些typedef,并在多个文件中使用它吗?也许可以通过解决它?你不能。转发声明不足以访问成员。如果在Test
中使用A*
而不是A::APtr\u APtr
,则使用类似class A的正向声明代码>之前声明的测试就可以了。谢谢回复。有什么解决方案可以在一个位置执行这些typedef,并在多个文件中使用它吗?也许可以通过以下方式解决?