c++ 头文件
可以将程序分为二部分:
头文件:包含结构声明和使用这些结构的函数的原型
源代码文件: 包含与结构有关的函数的代码
不要将函数的定义或变量的声明放在头文件里,
一般头文件可以包含以下内容
>函数原型
>使用#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();
- }
c++ 头文件的更多相关文章
- 【C】.h头文件的重复包含问题
.h头文件存在的意义就是封装,可以方便多个.c源文件使用,但要防止.h头文件被同一个.c源文件多次包含. 例如, io.h文件 #ifndef _IO_H_ #define _IO_H_ #defin ...
- C/C++头文件区别
在从C迁移到C++时,引用的头文件经常忘记是C的还是C++特有的 1. *.h limits.h ctype.h 2. c* climits cctype [结尾不含.h] 3. 其余的都属于C+ ...
- iOS开发中遇到的错误整理 - 集成第三方框架时,编译后XXX头文件找不到
iOS编译报错-XXX头文件找不到 错误出现的情况: 自己在继承第三方的SDK的时候,明明导入了头文件,但是系统报错,提示头文件找不到 解决方法 既然系统找不到,给他个具体路径,继续找去! 路径就填写 ...
- 使用powershell批量添加Keil和IAR的头文件路径
在Keil和IAR的工程中,为了使文件结构清晰,通常会设置很多的子文件夹,然后将头文件和源文件放在不同的子文件夹中,这样就需要手动添加这些头文件夹的路径.当工程结构非常复杂时,文件夹的数量就非常多,特 ...
- C/C++头文件使用 #ifndef #define #endif 的原因
背景 在编译的时候,出现"redefine"的错误,最后检查才发现对应的头文件没有写正确的预编译信息: #ifndef _HeadFileName_H #define _HeadF ...
- Qt - 错误总结 - 在自定义类头文件中添加Q_OBJECT 编译时报错(undefined reference to ‘vtable for xxThread)
错误提示:在添加的QThread子类头文件添加Q_OBJECT时,编译程序,出现"undefined reference to 'vtable for xxThread'"错误提示 ...
- C语言中,头文件和源文件的关系(转)
简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句, ...
- 配置apue的头文件apue.h和unp的头文件anp.h
配置apue的头文件apue.h和unp的头文件anp.h 如果要使用gcc -g 来生成可调试文件一定要修改Make.defines.linux文件中的CFLAGS变量 修改为:CFLAGS=-an ...
- c/c++头文件_string
string, cstring, string.h 一.string头文件 主要包含一些字符串转换的函数 // sto* NARROW CONVERSIONS// sto* WIDE CONVERSI ...
- 上传伪技术~很多人都以为判断了后缀,判断了ContentType,判断了头文件就真的安全了。是吗?
今天群里有人聊图片上传,简单说下自己的经验(大牛勿喷) 0.如果你的方法里面是有指定路径的,记得一定要过滤../,比如你把 aa文件夹设置了权限,一些类似于exe,asp,php之类的文件不能执行,那 ...
随机推荐
- sql server 跟踪各事件的字段项编码及解释
column_id有如下表:1 TextData 与跟踪内捕获的事件类相关的文本值. 2 BinaryData 与在跟踪中捕获的事件类相关的二进制值. 3 DatabaseID USE databas ...
- 实例浅析epoll的水平触发和边缘触发,以及边缘触发为什么要使用非阻塞IO
一.基本概念 我们通俗一点讲: Level_triggered(水平触发):当被监控的 ...
- 关于TCP连接建立与终止那点事
0. 前言 最近在处理公司遗留项目的时候发现自己对TCP协议一点都不懂,所以补了点关于TCP连接的建立和终止的内容,这里简单写下自己了解的部分,省略了报文序号确认序号这些无关的字段,主要讨论TCP状态 ...
- 简述几项关于web应用的开发技术
有几个人曾经问我,有哪些最有用或最好的编程语言适宜学习? 姑且略过HTML/CSS不谈,我认为答案取决于你想通过编程来做什么. 要点速览 对只用一种语言来构建某个项目的情况而言,Javascript和 ...
- 周一干不干活-PHP+MySQLi
hi 本来是雄心壮志的要干活的,哪知天有不测,早上大阴天起不来,中午又回寝室折腾衣服(做女工啊,牛不牛)没睡午觉,这样的迷糊状态,怎么科研,写这个好了. 1.PHP的OOP编程 4.7 多态 --定义 ...
- NOIP2002矩形覆盖[几何DFS]
题目描述 在平面上有 n 个点(n <= 50),每个点用一对整数坐标表示.例如:当 n=4 时,4个点的坐标分另为:p1(1,1),p2(2,2),p3(3,6),P4(0,7),见图一. 这 ...
- ExecutorType 的类型
- AC日记——找第一个只出现一次的字符 openjudge 1.7 02
02:找第一个只出现一次的字符 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符.如果没有,输出no. 输入 一个字符串 ...
- dotNet开发游戏微端
需求分析 功能要求 当玩家使用不支持 unity webplayer 的浏览器进入游戏时,让玩家通过微端玩游戏. 确保微端的功能和页游戏功能一致. 大体功能就是为unity web game开发微端, ...
- HTML插入地图的方法
方法/步骤 1.打开"百度地图生成器"的网址:http://api.map.baidu.com/lbsapi/creatmap/index.html 如下图: 2.在"1 ...