《c++语言导学》——3.2 分离编译

3.2 分离编译

C++支持一种名为分离编译的概念,用户代码只能看见所用类型和函数的声明,它们的定义则放置在分离的源文件里,并被分别编译。这种机制有助于将一个程序组织成一组半独立的代码片段。其优点是编译时间减到最少,并且强制要求程序中逻辑独立的部分分离开来(从而将发生错误的几率降到最低)。库通常是一组分别编译的代码片段(如函数)的集合。
一般情况下,我们把描述模块接口的声明放置在一个特定的文件中,文件名常常指示模块的预期用途。例如:

https://yqfile.alicdn.com/256da4cbdf9c79678509082d5f33a4c3a682f12a.png
" >

时间: 2024-09-21 21:03:56

《c++语言导学》——3.2 分离编译的相关文章

《c++语言导学》—— 导读

前言 现在的C++仿佛进化成了一种新的语言.与C++98相比,C++11更易于我们清晰.简洁.直观地表达思想.而且编译器可以更好地检查程序中的错误,程序的运行速度也提高了. 就像其他任何一种现代编程语言一样,C++的规模庞大且提供的库异常丰富,值得程序员认真学习以便高效地利用.这本小册子的目的是让有经验的程序员快速了解现代C++语言,因此它几乎介绍了C++的全部核心功能和重要的标准库组件.读者花费几个小时就能读完本书,但是想必所有人都清楚,要想写出漂亮的C++程序绝非一日之功.好在本书的目的并非

《c++语言导学》——第3章 模 块 化 3.1 引言

第3章 模 块 化 引言 分离编译 命名空间 错误处理 异常:不变式:静态断言 建议 3.1 引言 一个C++程序可能包含许多独立开发的部分,例如函数(见1.3节).用户自定义类型(见第2章).类层次(见4.5节)和模板(见第5章)等.因此构建C++程序的关键就是清晰地定义这些组成部分之间的交互关系.第一步也是最重要的一步是把某个部分的接口和实现分离开来.在语言的层面,C++使用声明来描述接口.声明(declaration)指定了使用某个函数或某种类型所需的所有内容.例如: https://yq

《c++语言导学》——3.4 错误处理

3.4 错误处理 错误处理是一个略显繁杂的主题,它的内容和影响都远远超越了语言特性的层面,而应归结为程序设计技术和工具的范畴.不过C++还是提供了一些有益的功能,其中最主要的一个工具就是类型系统本身.在构建应用程序时,通常的做法不是仅仅依靠内置类型(如char.int和double)和语句(如if.while和for),而是建立更多适合应用的新类型(如string.map和regex)和算法(如sort().find_if()和draw_all()).这些高级成分简化了程序设计,减少了产生错误的

《Java语言导学(原书第6版)》一导读

前 言 自2010年年初Oracle公司收购Sun公司以来,Java语言迎来激动人心的时代.正如Java Community Process计划的活动所印证的,Java语言将不断发展.本书基于Java SE 8(Java Platform Standard Edition 8)并引用其API. 相比本书第5版(针对的是Java版本7),第6版有一些新特点: Lambda表达式使得功能可作为方法参数使用,代码作为数据使用.Lambda表达式描述单个方法接口(也称为功能接口)的实例会更简洁.4.4.

《Java语言导学(原书第6版)》一3.2 运算符

3.2 运算符 学习了如何声明和初始化变量之后,下面看看如何利用这些变量来做点事情.学习Java程序语言的运算符是个很好的切入点.运算符是一类特殊的符号,它们执行1个.2个或3个运算对象上的特定操作,然后返回结果. 研究Java程序语言的运算符时,先了解这些运算符的优先级可能会有帮助.表3-2根据优先级顺序列出了所有的运算符.越靠近表的顶端,运算符的优先级越高.优先级较高的运算符先计算,相对较低的后计算.同一行的运算符优先级相等.当表达式中出现优先级相等的运算符时,计算规则如下:赋值运算符从右到

《Java语言导学(原书第6版)》一一3.2 运算符

3.2 运算符 学习了如何声明和初始化变量之后,下面看看如何利用这些变量来做点事情.学习Java程序语言的运算符是个很好的切入点.运算符是一类特殊的符号,它们执行1个.2个或3个运算对象上的特定操作,然后返回结果. 研究Java程序语言的运算符时,先了解这些运算符的优先级可能会有帮助.表3-2根据优先级顺序列出了所有的运算符.越靠近表的顶端,运算符的优先级越高.优先级较高的运算符先计算,相对较低的后计算.同一行的运算符优先级相等.当表达式中出现优先级相等的运算符时,计算规则如下:赋值运算符从右到

《Java语言导学(原书第6版)》一1.2 “Hello World!”实例程序

1.2 "Hello World!"实例程序 本节详细介绍编译和运行"Hello World!"实例程序的指令.1.2.1节介绍利用集成开发环境NetBeans IDE开发该程序的过程.NetBeans IDE在Java平台上运行,也就是说可在任何配置了JDK的操作系统上运行NetBeans IDE,包括Microsoft Windows.Solaris.Linux和OS X.建议尽可能使用NetBeans IDE取代命令行.1.2.2节和1.2.3节依次介绍不使用

《Java语言导学(原书第6版)》一一1.2 “Hello World!”实例程序

1.2 "Hello World!"实例程序 本节详细介绍编译和运行"Hello World!"实例程序的指令.1.2.1节介绍利用集成开发环境NetBeans IDE开发该程序的过程.NetBeans IDE在Java平台上运行,也就是说可在任何配置了JDK的操作系统上运行NetBeans IDE,包括Microsoft Windows.Solaris.Linux和OS X.建议尽可能使用NetBeans IDE取代命令行.1.2.2节和1.2.3节依次介绍不使用

《Java语言导学(原书第6版)》一一3.1 变量

3.1 变量 根据第2章可知,对象的状态存储在字段中: 2.1节已经介绍了字段的概念,但读者仍可能会问:命名字段有什么规则和约定?除了整型,是否还有其他数据类型?字段在声明时是否必须初始化?如果字段没有显式初始化,该字段是否会被赋予一个默认值?本章将会详细解答这些问题.但在此之前,先要明确一些技术差别.Java程序语言同时使用字段和变量.对于新的开发人员而言,这是造成概念混淆的主要原因,因为两者经常看似指代同一个事物.Java程序语言定义了如下变量: 实例变量(非静态字段).就技术而言,对象将个