码迷,mamicode.com
首页 > 编程语言 > 详细

C++中头文件(.h)和源文件(.cpp)都应该写些什么

时间:2016-04-12 17:33:56      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:


   头文件(.h):

    写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体的实现。

    在写头文件时需要注意,在开头和结尾处必须按照如下样式加上预编译语句(如下):

 

技术分享#ifndef CIRCLE_H
技术分享
#define CIRCLE_H
技术分享
技术分享
//你的代码写在这里
技术分享

技术分享
#endif

 

    这样做是为了防止重复编译,不这样做就有可能出错。

    至于CIRCLE_H这个名字实际上是无所谓的,你叫什么都行,只要符合规范都行。原则上来说,非常建议把它写成这种形式,因为比较容易和头文件的名字对应。

   源文件(.cpp):

    源文件主要写实现头文件中已经声明的那些函数的具体代码。需要注意的是,开头必须#include一下实现的头文件,以及要用到的头文件。那么当你需要用到自己写的头文件中的类时,只需要#include进来就行了。

    下面举个最简单的例子来描述一下,咱就求个圆面积。

     第1步,建立一个空工程(以在VS2003环境下为例)。

     第2步,在头文件的文件夹里新建一个名为Circle.h的头文件,它的内容如下:

 

技术分享#ifndef CIRCLE_H
技术分享
#define CIRCLE_H
技术分享
技术分享
class Circle
技术分享
{
技术分享
private:
技术分享    
double r;//半径
技术分享
public:
技术分享    Circle();
//构造函数
技术分享
    Circle(double R);//构造函数
技术分享
    double Area();//求面积函数
技术分享
}
;
技术分享
技术分享
#endif

   注意到开头结尾的预编译语句。在头文件里,并不写出函数的具体实现。

    第3步,要给出Circle类的具体实现,因此,在源文件夹里新建一个Circle.cpp的文件,它的内容如下:

 

技术分享#include "Circle.h"
技术分享
技术分享Circle::Circle()
技术分享
{
技术分享    
this->r=5.0;
技术分享}

技术分享
技术分享Circle::Circle(
double R)
技术分享
{
技术分享    
this->r=R;
技术分享}

技术分享
技术分享
double Circle:: Area()
技术分享
{
技术分享    
return 3.14*r*r;
技术分享}

    需要注意的是:开头处包含了Circle.h,事实上,只要此cpp文件用到的文件,都要包含进来!这个文件的名字其实不一定要叫Circle.cpp,但非常建议cpp文件与头文件相对应。

    最后,我们建一个main.cpp来测试我们写的Circle类,它的内容如下:

 

技术分享#include <iostream>
技术分享#include 
"Circle.h"
技术分享
using namespace std;
技术分享
技术分享
int main()
技术分享
{
技术分享    Circle c(
3);
技术分享    cout
<<"Area="<<c.Area()<<endl;
技术分享    
return 1;
技术分享}

    注意到开头时有#include "Circle.h"的声明,证明我们使用到了我们刚才写的Circle类。

   至此,我们工程的结构为:

技术分享

    运行一下,输出结果为:

技术分享

   说明我们写的Circle类确实可以用了。

C++中头文件(.h)和源文件(.cpp)都应该写些什么

标签:

原文地址:http://blog.csdn.net/u011555996/article/details/51131721

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!