C++ 前置声明

(一)class的前置声明

  class的前置声明有两种。

pre.h

class PreA
{};
main.h

class PreA;
class Main
{};


//或者
class Main
{
   class PreA* A; 
};

(二) struct前置声明

  struct的前置声明只能用第一种。

(三) 有typedef的前置声明

  

Pre.h
    a.h  
      
    class object  
    {  
        ...  
    };  
      
    struct myStruct  
    {  
        ...  
    };  
      
    typedef object defMyObject;  
    typedef myStruct defMyStruct;  
Main.h

typedef class object defMyObject;  
typedef struct myStruct defMyStruct;  

//或者
class object;  
typedef object defMyObject;  
struct myStruct;  
typedef myStruct defMyStruct;  
原文地址:https://www.cnblogs.com/litmin/p/8350437.html