IT学习者 | 文章大全 | 技术文档 | 桌面壁纸 | 实用查询 | 网络电台 | 成语 | 歇后语 | 网址 | 下载 | 周公解梦 | 生日密码 | 电视剧365 | Flash
 您现在的位置: IT学习者 >> 文章大全 >> 网络编程 >> C++/C编程

高质量C++/C编程指南(一)

【 作者:林锐    来源:网络  更新时间:2006-1-11 | 字体:
第 1 章 文件结构

每个 C++/C 程序通常分为两个文件。一个文件用于保存程序的声明( declaration ),称为头文件。另一个文件用于保存程序的实现( implementation ),称为定义( definition )文件。

C++/C 程序的头文件以“ .h ”为后缀, C 程序的定义文件以“ .c ”为后缀, C++ 程序的定义文件通常以“ .cpp ”为后缀(也有一些系统以“ .cc ”或“ .cxx ”为后缀)。

1.1 版权和版本的声明

版权和版本的声明位于头文件和定义文件的开头(参见示例 1-1 ),主要内容有:

( 1 )版权信息。

( 2 )文件名称,标识符,摘要。

( 3 )当前版本号,作者 / 修改者,完成日期。

( 4 )版本历史信息。

/*

* Copyright (c) 2001,上海贝尔有限公司网络应用事业部

* All rights reserved.

*

* 文件名称: filename.h

* 文件标识: 见配置管理计划书

* 摘 要: 简要描述本文件的内容

*

* 当前版本: 1.1

* 作 者: 输入作者(或修改者)名字

* 完成日期: 2001年7月20日

*

* 取代版本 : 1.0

* 原作者 : 输入原作者(或修改者)名字

* 完成日期: 2001年5月10日

*/

示例 1-1 版权和版本的声明

1.2 头文件的结构

头文件由三部分内容组成:

( 1 )头文件开头处的版权和版本声明(参见示例 1-1 )。

( 2 )预处理块。

( 3 )函数和类结构声明等。

假设头文件名称为 graphics.h,头文件的结构参 见示例 1-2 。

l 【规则 1-2-1 为了防止头文件被重复引用,应当用 ifndef/define/endif 结构产生预处理块。

l 【规则 1-2-2 用 #include < filename.h> 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。

l 【规则 1-2-3 用 #include “filename.h” 格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。

2 【建议 1-2-1 头文件中只存放“声明”而不存放“定义”

在 C++ 语法中,类的成员函数可以在声明的同时被定义,并且自动成为内联函数。这虽然会带来书写上的方便,但却造成了风格不一致,弊大于利。建议将成员函数的定义与声明分开,不论该函数体有多么小。

2 【建议 1-2-2 不提倡使用全局变量,尽量不要在头文件中出现象 extern int value 这类声明。

// 版权和版本声明见示例 1-1 ,此处省略。

#ifndef GRAPHICS_H // 防止 graphics.h 被重复引用

#define GRAPHICS_H

#include // 引用标准库的头文件

#include “myheader.h” // 引用非标准库的头文件

void Function1(…); // 全局函数声明

class Box // 类结构声明

{

};

#endif

示例 1-2 C++/C头文件的结构

1.3 定义文件的结构

定义文件有三部分内容:

(1) 定义文件开头处的版权和版本声明(参见示例 1-1 )。

(2) 对一些头文件的引用。

(3) 程序的实现体(包括数据和代码)。

假设定义文件的名称为 graphics.cpp, 定义 文件的结构参 见示例 1-3 。

// 版权和版本声明见示例 1-1 ,此处省略。

#include “graphics.h” // 引用头文件

// 全局函数的实现体

void Function1(…)

{

}

// 类成员函数的实现体

void Box::Draw(…)

{

}

示例 1-3 C++/C定义文件的结构

1.4 头文件的作用

早期的编程语言如 Basic 、 Fortran 没有头文件的概念, C++/C 语言的初学者虽然会用使用头文件,但常常不明其理。这里对头文件的作用略作解释:

( 1 )通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。

( 2 )头文件能加强类型安全检查。如果某个接口被实现或被使用时,其方式与头文件中的声明不一致,编译器就会指出错误,这一简单的规则能大大减轻程序员调试、改错的负担。

1.5 目录结构

如果一个软件的头文件数目比较多(如超过十个),通常应将头文件和定义文件分别保存于不同的目录,以便于维护。

例如可将头文件保存于 include 目录,将定义文件保存于 source 目录(可以是多级目录)。

如果某些头文件是私有的,它不会被用户的程序直接引用,则没有必要公开其“声明”。为了加强信息隐藏,这些私有的头文件可以和定义文件存放于同一个目录。

相 关 文 章
相 关 软 件
逃生 放生 黄玫瑰 想太多 那滋味 擦肩而过 放手去爱 北京欢迎你 依然在一起 吻得太逼真 感动天感动地 坐上火车去拉萨 怎么会狠心伤害我
心碎 冲动 小太阳 别碰我 蒲公英 千山万水 改变自己 一定要爱你 等爱的玫瑰 陷入爱里面 北极星的眼泪 最后一次的温柔 亲爱的那不是爱情
光荣 火花 坏女人 日不落 樱花草 为你写诗 独家记忆 夏天的味道 寂寞才说爱 忘不掉的伤 爱上你是个错 第三者的第三者 地球人都知道我爱你
假如 相思 是非题 有缘人 舍不得 我的答铃 死而无憾 外滩十八号 越爱越难过 123木头人 和寂寞说分手 爱上你是我的错 爱情里没有谁对谁错
加入收藏留言建议自助友情链接普通友情链接站长的Blog
版权所有   COPYRIGHT 2002-2008 ★IT学习者★ ALL RIGHTS RESERVED.