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之类的文件不能执行,那 ...
随机推荐
- easy ui 1.4的NumberBox,失去焦点后不能再次输入小数点
这也是1.4版本的bug,现在1.4.1也发布了,经验证,该问题在新版本中已经解决了 在网上找到的解决办法,地址:http://www.jeasyui.com/forum/index.php?topi ...
- 十五天精通WCF——第五天 你需要了解的三个小技巧
一: 服务是端点的集合 当你在开发wcf的时候,你或许已经注意到了一个service可以公布多个endpoint,确实是这样,在wcf中有一句很经典的话,叫做“服务是端点的集合",就 比如说 ...
- C++之STL一般总结
重新复习一下STL 什么是STL? STL(模板和标准模板库),实现与类型无关的算法和数据类型,需要将实现中的类型参数化,允许用户根据它的需要制定不同的类型. 一.一般介绍 STL(Standard ...
- CCommandManager 类
CCommandManager类 CCommandManager 类管理命令及其与图像的关联.描述CCommandManager :: CleanUp从命令列表和全局和用户映射中删除所有元素.CCom ...
- 【转载】Android Metro风格的Launcher开发系列第二篇
前言: 各位小伙伴们请原谅我隔了这么久才开始写这一系列的第二篇博客,没办法忙新产品发布,好了废话不说了,先回顾一下:在我的上一篇博客Android Metro风格的Launcher开发系列第一篇写了如 ...
- arc如何破循环或交叉引用
IOS两种常见的循环引用: 1,两个类之间互相定义对方的引用 如下: //ARC code @interface A : NSObject @property (nonatomic,strong) B ...
- 第10章 同步设备I/O和异步设备I/O(1)_常见设备及CreateFile函数
10.1 打开和关闭设备 10.1.1 设备的定义——在Windows中可以与之进行通信的任何东西. (1)常见设备及用途 设备 用途 用来打开设备的函数 文件 永久存储任何数据 CreateFile ...
- jsp前三章小测试:错题
/bin:存放各种平台下用于启动和停止Tomcat的脚本文件 /logs:存放Tomcat的日志文件 /webapps:web应用的发布目录 /work:Tomcat把由JSP生成的Servlet存放 ...
- plsqldevloper + orcal环境搭建
移动信息安全的漏洞和逆向原理 程序员11月书讯,评论得书啦 Get IT技能知识库,50个领域一键直达 关闭 PL/SQL Developer安装配置实践 2014-04-23 1 ...
- 入门HTML的回顾,小总结
1.HTML(是一种超文本标记语言 Hypertext Markup Language),HTML不是一种编程语言,而是一种标记语言,描述网页的语言,HTML是由一套标记标签(markup tag ...