视觉lifeC++编程实战:入门基础 C++编程实战:进阶提升
一、基本结构
从简单的多文件项目开始吧!通常分为三部分:main.cpp
,aclass.cpp
,aclass.h
三个部分:
aclass.h
:函数原型
使用#define或const定义的符号常量
结构体声明
类声明
模板声明
内联函数
aclass.cpp
:包含与结构体、模板、类相关的函数代码main.cpp
:包含调用与结构体、模板、类相关的函数代码
二、“”
和<>
的区别
包含自定义的头文件时,用双引号
“”
,编译器首先查找当前工作目录或源代码目录;如果没有找到,则将在标准位置查找。包含库的头文件时,用尖括号
<>
,编译器将查找存储标准头文件的主机系统的文件系统中查找。
三、头文件使用ifndef
、define
、endif
的解释
由于在不知情的原因下,有可能将头文件包含多次,基于预处理器编译指令#ifndef
(即if not define
)可以避免这种情况 。
#ifndef ACLASS_H_...#endif
上面这段代码意味着仅当之前没有使用预处理器编译指令#define
定义名称ACLASS_H_
时,才处理#ifndef
和#endif
之间的语句。
编译器首次遇到该文件时,名称ACLASS_H_
没有定义(该名称根据头文件的名字取得,并加上一些下划线,使其在其他地方不太可能被定义),在这种情况下,编译器将查看#ifndef
和#endif
之间的内容;如果在同一个文件中遇到其他包含aclass.h
的内容,编译器就知道ACLASS_H_
已经被定义了,从而跳到#endif
后面的一行上。