多文件编程include规则

在C++中,习惯声明和定义分开,也就是经常出现一个Class对应两个文件,一个.h,一个.cpp。当我们面对多个类设计的时候,文件include可能需要注意。我对此没太多经验,因此吃了点亏。自己总结一点点经验:

1、MyClass.h
此文件只放置与MyClass有关的声明,而不放置任何MyClass中可能用到的类的声明,或者其它.h的引入。

在MyClass.h的首部添加
#pragma once

或者在文件首尾的地方添加
#ifndef _XXXXXX_H_
#define _XXXXXX_H_

....

#endif

用以确保声明只被#include一次。

2.MyClass.cpp

每个Class.cpp的首部include部分,分为2部分。
第一部分是整个类库的.h的include;第二部分是该类自身除了整个类库的.h之外还额外需要的类库的include。

// Public Part
#include "MyClassLibCommon.h"

// Private Part
#include "MyClassBase1.h"
#include "MyClassBase2.h"
#include <fstream>

3.MyClassLibCommon.h

这个文件放置整个类库公共的声明部分,和一些大家都有可能用到的系统库。
#include <iostream>
#include <string>
#include <winsock2.h>

#pragma comment(lib,"wsock32")

using namespace std;

typedef unsigned int dword;
typedef unsigned short word;
typedef unsigned char byte;

4. MyClassLib.h
这个文件是为了外部程序引用方便而设置的。其中引用了库内所有的类。
// 第一部分
#include "MyClassLibCommon.h"
// 第二部分
#include "MyClass.h"
#include "MyClassBase1.h"
#include "MyClass2.h"

5. App.cpp
在这个文件中指需要include一个MyClassLib.h文件即可。整个Project就可以编译了。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值