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)都应该写些什么

  • 相关阅读:
    【转载自酷壳】编程能力与编程年龄
    xcode中的nslog数据格式
    xcode 的 pch 预编译头文件
    获取App的Documents路径
    使用gdb调试app
    收集的一些OC知识点
    收集到的几篇看雪学院文章
    【转】iOS平台的应用程序调试与分析
    前端技术开发的一些建议
    UIImage的两种加载方式
  • 原文地址:https://www.cnblogs.com/sylar5/p/6702483.html
Copyright © 2011-2022 走看看