前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c++ 头文件

c++ 头文件

作者头像
lpxxn
发布2018-01-31 12:53:59
1.6K0
发布2018-01-31 12:53:59
举报
文章被收录于专栏:技术之路技术之路

可以将程序分为二部分:

头文件:包含结构声明和使用这些结构的函数的原型

源代码文件: 包含与结构有关的函数的代码

不要将函数的定义或变量的声明放在头文件里,

一般头文件可以包含以下内容

>函数原型

>使用#define或const定义的符号常量

>结构声明

>类声明

>模板声明

>内联函数

在包含头文件时我们使用 #include "head.h"而不是#include <head.h>

如果使用<>  c++编译器将在存储标准头文件的主机系统的文件系统中查找;

如果使用""   编译器会首先查找当前的工作目录或源代码目录,如果没有找到头文件,再去标准位置查找

注意:在IDE中,不要将头文件加入到项目列表中,也不要在源代码文件中使用#include 来包含其它源代码文件

代码语言:javascript
复制
#ifndef COORDIN_H
#define COORDIN_H

struct polar
{
    double distance;  //distance from origin
    double angle;      //direction form origin
};

struct rect
{
    double x;    //horizontal distance form origin
    double y;    //vertical distance from origin
};

polar rect_to_polar(rect xypos);
void show_polar(polar dapos);

#endif

在同一个文件中只能将一个头文件包含一次,但有可能会因为错误操作包含多次,有一种标准的c/c++技术可以避免

多次包含一个头文件。它是基于预处理编译指令#ifndef(if not defined)的。上边的代码意味着仅当以前没有

使用预处理编译器指令#define定义名称COORDIN_H时,才处理#ifndef和#endif之间的语句

源代码文件

代码语言:javascript
复制
#include<iostream>
#include<cmath>
#include "coordin.h"

using namespace std;

polar rect_to_polar(rect xypos)
{
    polar answer;
    answer.distance=sqrt(xypos.x*xypos.x+xypos.y*xypos.y);
    answer.angle=atan2(xypos.y,xypos.x);
    return answer;
}
void show_polar(polar dapos)
{
    cout<<dapos.angle<<"   "<<dapos.distance<<endl;
}

调用

代码语言:javascript
复制
#include<iostream>
#include "coordin.h"
using namespace std;
int main()
{
    rect replace;
    polar pplace;
    cout<<"Enter the x and y values:\n";
    while(cin>>replace.x>>replace.y)
    {
        pplace=rect_to_polar(replace);
        show_polar(pplace);
    }    
    cin.get();
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-12-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档