您的位置:首页 > 编程语言 > C语言/C++

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++ 知识点