Essential C++ 笔记 (二)
来源:互联网 发布:局域网远程关机软件 编辑:程序博客网 时间:2024/06/12 00:44
2.2 调用一个函数
1. 将参数声明为reference的理由之一是,希望得以直接对所传入的对象进行修改.
将参数声明为reference的理由之二是,为了降低复制大型对象的负担.
大多数编译器对于以传值方式返回class object, 都会通过最佳化程序, 加上额外的reference参数.
2. 但我们提领pointer时, 一定要先确定其值并非为0.
3. 内建型别的对象, 如果定义在file scope之内, 必定被初始化为0. 但如果它们被定义于local scope之内, 那么除非程序员指定其初值, 否则不会被初始化.
4. 不论local scope或file extent, 都是由系统自动管理. 第三种出处形式称为dynamic extent (动态范围). 这中heap memory内存必须由程序员自行管理.
从heap配置而来的对象, 被称为具有 dynamic extent, 因为它们是在执行期通过new表达式, 因此可以持续存活, 直到以delete表达式加以释放为止.
没有delete的heap内存放置的对象永远不会释放, 此称为memory leak(内存泄漏)
2.4 使用局部静态对象
1. 为了节省函数间的通信问题而将对象定义与file scope内, 永远都是一种冒险.
2. 局部静态对象所处的内存空间, 及时在不同的函数调用过程中, 依然持续存在.
2.5 声明一个inline函数
将函数声明为inline, 表示要求编译器在每个函数调用点上, 将函数的内容展开. 面对一个inline函数, 编译器可将该函数的调用操作改以一份函数副本取代.
我们必须将inline函数的定义至于头文件, 而不是把它放在各个不同的程序代码文件.
指定Inline函数仅仅是一种请求而没有强制性, 具体执行视编译器而定
2.6 提供重载函数
2.8 函数指针
2.9 设定头文件
以<>将文件名括住, 编译器搜寻此文档时, 会先在默认的驱动器目录中寻找.
以" " 括住, 此文件被认为是一个用户自行提供的头文件, 搜寻此文件时,会有含有此文件的驱动器寻找.
- Essential C++ 笔记 (二)
- 《Essential C++》笔记1
- 《Essential C++》笔记二、面向过程的编程风格
- 《Essential C++》读书笔记(二)
- Essential COM笔记(二)
- c++学习笔记(essential c++)
- 《Essential C++》笔记一、C++编程基础
- 《Essential C++》笔记三(1)、使用泛型算法
- 《Essential C++》笔记三(2)、泛型编程风格
- 《Essential C++》笔记三(3)、使用iostream iterators
- 《Essential C++》笔记四、采用关键字inline带来的错误
- 《Essential C++》笔记五、基于对象的编程风格
- 快速阅读《Essential C++》
- Essential C++
- 重读《Essential C++》心得
- 垃圾《Essential C++》
- 读《essential c++》有感
- 《Essential C++》 基础知识
- PHP面试题汇总
- 百度开放研究社区-电影推荐系统算法创新大赛
- 记忆化搜索 uva-10651-Pebble Solitaire
- Python笔记
- mysql书籍
- Essential C++ 笔记 (二)
- 项目管理—计划
- Linux多线程编程小结
- linux常用命令--文件和目录
- 在JAVA中如何跳出当前的多重嵌套循环
- Android应用各个开放平台市场
- yaffs2移植到内核linux2.6.38
- 概率图模型之有向图与无向图
- Java学习 --- float VS double