两个头文件互相包含,怎样实现?

2024年11月16日 12:03
有5个网友回答
网友(1):

C++头文件重复互相包含,假设有两个类A和B,分别定义在各自的有文件A.h和B.h中,但是在A中要用到B,B中也要用到A,代码如下:

//文件A.h中的代码 
#pragma once 
#include "B.h" 
class B; 
  
class A 
{  
public: 
        B* b;  
};  
  
//文件B.h中的代码 
#pragma once 
#include "A.h" 
class B; 
  
class B 
{  
public: 
        A* a;  
};

网友(2):

只要预定义一个就OK了
//temp004.h
#ifndef temp004_h
#define temp004_h
#include "temp004_2.h"
int b=1;
extern int a;//仅用来声明
#endif

//temp004_2.h
extern int b;
int a=2;

//temp004.cpp
#include
#include "temp004.h"
using namespace std;
int main()
{
cout<cout<return 0;

}
还有问题的话``60233108

网友(3):

不能相互包含,否则就变成了无限循环了。

网友(4):

用这样的
#ifndef
#define
#endif
这样是防止重复包含,而不能达到互相包含

其实互相包含是重复包含的一种,是不允许的

网友(5):

用这样的
#ifndef
#define
#endif