关于C++中的头文件互相包含
来源:互联网 发布:网络车管所 编辑:程序博客网 时间:2024/04/26 16:28
在c++中一般的程序都会分成头文件和cpp文件,然后包含不同的头文件可以获得头文件中的函数的引用,
但是这里就会出现一个问题就是如果两个文件中同时包含了同一个头文件,例如 A.h中包含了C.h 然后在B.h中
也包含C.h 那么就会出现上述所提到的重复包含的情况。
所以在这里可以使用一个 # ifndef __A_H_ #define __A_H_ #endif
如下所示
// A.h#ifndef _A_H_#define _A_H_class A{public:static A& getTheApp();void funA();private:static A* theApp;};#endif
// B.h#ifndef _B_H_#define _B_H_class A;class B{public:void funB(){printf("B...\n");A::getTheApp().funA();}void funB2();};#endif
但是我之前在写程序的时候遇到了这样的一种情况A包含了B的头文件B也还要包含A的头文件这样的情况,那么这样的话
对于编译器来说它需要把这两个头文件编译了这就是个问题了,那么如何解决这个问题呢也是通过一个预定义#pramgma once这样就能解决
但是注意的是在类定义之前需要加上对类的声明,比如下面在 Class A 之前需要有个 Class B
#pragma once#include "B.h"class B;class A{ public: B* b;};//文件B.h中的代码#pragma once#include "A.h"class A;class B{ public: A* a;};
所以一般的C++程序的规范是要求把头文件尽量写在cpp文件中这样可以避免上述的头文件相互包含的问题。
点击链接解锁更多内容
0 0
- 关于C++中的头文件互相包含
- 头文件互相包含
- 头文件互相包含
- c语言中的头文件互相调用
- 关于C++的头文件互相包含的问题
- 头文件互相包含问题
- 头文件互相包含问题
- 关于C头文件包含include "**.h"
- 检查头文件是否互相包含
- 检查头文件是否互相包含
- VC中头文件互相包含错误
- C++中头文件互相包含问题
- 头文件需要互相包含怎么办?
- 头文件互相包含的问题
- 头文件互相包含的问题
- C头文件包含
- 关于C++头文件互相包含对程序员的一点建议
- 关于头文件中的重复包含和重复定义
- java CopyOnWriteArrayList的使用
- TNS-12535: TNS:operation timed out以及TNS-00505: Operation timed out的处理
- linux下使用yum安装mysql
- C# 两个时间日期相减的问题是否大于一年
- 解决AndroidStudio logcat 信息中包名为?号的问题
- 关于C++中的头文件互相包含
- 解析oracle的rownum
- hdu 1874 畅通工程续(最短路)
- 如何在Mac OS X上安装 Ruby运行环境
- [算法系列之九]Karatsuba快速相乘算法
- PHP官方Windows扩展列表
- 自定义日期
- hdu2126——Buy the souvenirs——————【01背包记录物品最多时种数】
- 加载依赖的jar包在命令行编译和运行java文件