c/c++知识点(持续更新中......)
2017-03-27 16:13
155 查看
c/c++知识点
1. 空类
对于一个空类来说,其sizeof本应该是为0的,但是在进行实例化化的过程中,为了标识每一个对象,编译器会为每个对像分配1个字节的占位符。2. 常量字符串暂用空间
在进行内存空间分配时,如果是常量字符指针和数组分配(本质上一样),则即使字符串内容一样,其地址也不样。非常量则是一样的。3. final, finally, finalize的区别
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。
4. 构造函数的初始化
在进行类的构造函数初始化的过程中,一定需要进行列表初始化的是1. 带const的类成员变量,2. 带有引用的变量的类,3. 带有引用的类变量,然而由于static是属于类的,一定不能在构造函数中初始化。5. 程序的鲁棒性
为了解决程序的鲁棒性问题,这里有3种解决方案,其优缺点对比如下:方法 | 优点 | 缺点 |
---|---|---|
返回值法 | 和系统API一致 | 不能方便地使用计算结果 |
全局变量法 | 能够方便地调用计算结果 | 用户可能忘记全局变量 |
抛出异常法 | 可以为不同的出错原因定义不同类型,逻辑清晰明了 | 对程序性能有影响,有些语言不支持 |
6. 内联函数
内联函数一般都比较短,可以加快程序的运行速度,然而内联函数可能使可执行程序变大,或者变小(若这个函数被调用了一次,那么内联直接被插入到函数调用处,就直接没有了这个函数符号了,若加上优化,这一句代码可能会被优化掉而变为没有,所以,可执行文件可能会减少)。同时函数是不能嵌套定义的,但是可以嵌套声明及调用。相关文章推荐
- c/c++知识点(持续更新中......)
- [python]Learn to program (持续更新)
- 一个程序员的成长历程(持续更新)
- [置顶] 美团点评后台开发实习记(持续更新->已经完结)
- Python爬虫问题汇总(持续更新)
- Vitamio不支持特性列表(本文会持续更新 2013-03-13)
- AndroidStudio使用过程中遇到的bug(持续更新)
- Java常用方法总结(持续更新中)
- Java自学视频整理(持续更新中...)
- 解决Ubuntu下中文输入法问题(持续更新)
- ACM 刷题错误总结 持续更新并持续回顾中o(╯□╰)o
- 收藏的iOS技术网站汇总(持续更新ing)
- mac下Android Studio 快捷键(持续更新)
- Android优秀开源框架分享(持续更新)
- 2017.3.27 集成modeler后的一些主要路径(持续更新)
- 腾讯面试题(持续更新ing)
- Ubuntu下android系统开发备用杂烩(持续更新)
- iOS宏(自己使用,持续更新)
- Strus2学习记录整理【持续更新】