zoukankan      html  css  js  c++  java
  • C++ 中头文件(.h)和源文件(.cc)的写法简述

    用C++编写比较大型的项目时,文件的分割管理确实确实是非常必要的 。下面就非常简洁明了地谈谈头文件(.h)和源文件(.cc)应该怎么写。

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

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

    #ifndef CIRCLE_H
    #define CIRCLE_H
    
    //你的代码写在这里
    
    #endif

    这样做是为了防止重复编译,不这样做就有可能出错。至于CIRCLE_H这个名字实际上是无所谓的,你叫什么都行,只要符合规范都行。原则上来说,非常建议把它写成这种形式,因为比较容易和头文件的名字对应。

    源文件(.cc):

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

    Example:

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

    第1步,建立一个空工程。

    第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.cc的文件,它的内容如下:

    #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.cc,但非常建议cc文件与头文件相对应。

    最后,我们建一个test.cc来测试我们写的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类。

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

  • 相关阅读:
    [kuangbin带你飞]专题十二 基础DP1 E
    hdu 1203 I NEED A OFFER! (01背包)
    hdu 2602 Bone Collector (01背包)
    hdu 4513 吉哥系列故事——完美队形II (manacher)
    hdu 2203 亲和串 (KMP)
    hdu 1686 Oulipo (KMP)
    hdu 1251 统计难题 (字典树)
    hdu 2846 Repository (字典树)
    hdu 1711 Number Sequence (KMP)
    poj 3461 Oulipo(KMP)
  • 原文地址:https://www.cnblogs.com/sylar5/p/6702483.html
Copyright © 2011-2022 走看看