c++ 中如果两个文件互相包含,其语法应该是怎样
各位大虾,我是一个编程的初学者,现在有个问题,请大虾帮忙我有2个C++文件,在头文件定义中互相包含,那么,语法应该是怎样的呢?比如,2个文件分别是[A.h,A.cpp],...
各位大虾,我是一个编程的初学者,现在有个问题,请大虾帮忙
我有2个C++文件,在头文件定义中互相包含,那么,语法应该是怎样的呢?
比如,2个文件 分别是[A.h,A.cpp],[B.h,B.cpp]
其头文件分别如下
A.h:
#ifndef AH
#define AH
#include "B.h"
....
#endif
--------------------------
B.h:
#ifndef BH
#define BH
#include "A.h"
....
#endif
这样,编译通不过。
附:问题由来
我在工程中定义了一个类,进行某种数据操作,(A)
然后,在工程中我定义了一个全局的工具类(B)
B类中含有一些静态的常用方法,比如读写文件什么的,其中有个静态方法就是读取文件,然后返回 A类的一个具体对象
而在A类中,我又需要B类的一些静态方法对数据进行分析
所以,出现了2个头文件互相包含的情况!
刚才的那2个可以编译,但下面的是不行的
B.h
class B{
public :
const static A* getA();
const static int ss = 0;
};
----------
A.cpp
A::A(){
int k = B::ss;
} 展开
我有2个C++文件,在头文件定义中互相包含,那么,语法应该是怎样的呢?
比如,2个文件 分别是[A.h,A.cpp],[B.h,B.cpp]
其头文件分别如下
A.h:
#ifndef AH
#define AH
#include "B.h"
....
#endif
--------------------------
B.h:
#ifndef BH
#define BH
#include "A.h"
....
#endif
这样,编译通不过。
附:问题由来
我在工程中定义了一个类,进行某种数据操作,(A)
然后,在工程中我定义了一个全局的工具类(B)
B类中含有一些静态的常用方法,比如读写文件什么的,其中有个静态方法就是读取文件,然后返回 A类的一个具体对象
而在A类中,我又需要B类的一些静态方法对数据进行分析
所以,出现了2个头文件互相包含的情况!
刚才的那2个可以编译,但下面的是不行的
B.h
class B{
public :
const static A* getA();
const static int ss = 0;
};
----------
A.cpp
A::A(){
int k = B::ss;
} 展开
3个回答
展开全部
在其中某个类的h文件中声明一下另一个类而不是include另一个类就可以了
换句话说,在A类的h文件里这样写
A.h:
#ifndef AH
#define AH
class B; //#include "B.h"
....
#endif
然后在A类的cpp文件里这样写
A.cpp:
#include "A.h"
#include "B.h"
...
B类的处理也一样
即可
换句话说,在A类的h文件里这样写
A.h:
#ifndef AH
#define AH
class B; //#include "B.h"
....
#endif
然后在A类的cpp文件里这样写
A.cpp:
#include "A.h"
#include "B.h"
...
B类的处理也一样
即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从来没有见过会相互包含的,这样会产生错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询