c++ 头文件

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介:

可以将程序分为二部分:

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

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

 

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

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

>函数原型

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

>结构声明

>类声明

>模板声明

>内联函数

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

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

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

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

复制代码
#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之间的语句

源代码文件

复制代码
#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;
}
复制代码

调用

复制代码
#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();
}
复制代码

 本文转自lpxxn博客园博客,原文链接:http://www.cnblogs.com/li-peng/p/3482016.html,如需转载请自行联系原作者

相关实践学习
Polardb-x 弹性伸缩实验
本实验主要介绍如何对PolarDB-X进行手动收缩扩容,了解PolarDB-X 中各个节点的含义,以及如何对不同配置的PolarDB-x 进行压测。
相关文章
C4.
|
1月前
|
算法 程序员 C++
C++标准头文件结构
C++标准头文件结构
C4.
24 0
|
1月前
|
程序员 C语言 C++
C++入门(头文件,命名空间,作用域,输入输出流,引用,缺省参数,函数重载)
C++入门(头文件,命名空间,作用域,输入输出流,引用,缺省参数,函数重载)
|
1月前
|
IDE 编译器 开发工具
C/C++ IDE环境 (Qt Creator visual studio等) Cmake工程不显示头文件的解决方案
C/C++ IDE环境 (Qt Creator visual studio等) Cmake工程不显示头文件的解决方案
28 0
|
5月前
|
算法 C++ 容器
86 C++ - 算法头文件
86 C++ - 算法头文件
23 0
|
1月前
|
编译器 C语言 C++
C/C++编译优化技巧:预编译头文件(PCH)使用方法
C/C++编译优化技巧:预编译头文件(PCH)使用方法
21 1
|
1月前
|
JavaScript 前端开发 编译器
Cmake 中 compiler_depend.ts 文件:解析和使用 C/C++ 预编译头文件
Cmake 中 compiler_depend.ts 文件:解析和使用 C/C++ 预编译头文件
22 1
|
4月前
|
编译器 程序员 C++
[C++] #ifndef和#define与#pragma once在头文件中的作用和关系
[C++] #ifndef和#define与#pragma once在头文件中的作用和关系
31 0
|
4月前
|
编译器 C++
[C++] include头文件双引号““与尖括号<>的区别
[C++] include头文件双引号““与尖括号<>的区别
24 0
|
5月前
|
C++
《C++避坑神器·一》头文件相互包含
《C++避坑神器·一》头文件相互包含
31 0
|
8月前
|
编译器 程序员 C语言
C++头文件和std命名空间
C++ 是在C语言的基础上开发的,早期的 C++ 还不完善,不支持命名空间,没有自己的编译器,而是将 C++ 代码翻译成C代码,再通过C编译器完成编译。 这个时候的 C++ 仍然在使用C语言的库,stdio.h、stdlib.h、string.h 等头文件依然有效;此外 C++ 也开发了一些新的库,增加了自己的头文件,例如: iostream.h:用于控制台输入输出头文件。 fstream.h:用于文件操作的头文件。 complex.h:用于复数计算的头文件。 和C语言一样,C++ 头文件仍然以.h为后缀,它们所包含的类、函数、宏等都是全局范围的。 后来 C++ 引入了命名空间的概
67 0