假设我有以下头文件:

abc_header.h

 class Abc
    {
     public:
       int a;
       int b;
       int c;
    };
    typedef std::vector<Abc> AbcArray;


然后,如果要使用此类,则可以以这种方式声明使用此类的函数,而无需包括abc_header.h头文件:

client1.h

 class Abc;
   void useAbc(Abc &pObj);


仅在实现部分中将包含头文件。然后,我有了另一个将使用AbcArray类的函数,在这种情况下,似乎必须在函数声明部分中包含abc_header.h标头,如下所示:

client2.h

 #include "abc_header.h"
 void useAbcArray(AbcArray &array);


有没有不包括头文件的可能性吗?谢谢。

最佳答案

只需在另一个标头abc_forward_header.h中具有前向声明Abc和(!)AbcArray:

class Abc;
typedef std::vector<Abc> AbcArray;

10-06 15:52