数组的销毁一定要使用delete [];明确的告知编译器这是一个内存块。
在C中最大的障碍就是名字冲突。对于函数,C使用单个名字空间,当连接器查找一个函数时,他在一个主表中查找,而且,当编译器白泥臆一个单元时,他只能对带有指定名字的单个函数进行处理。加入有连个厂商都觉得init和clean是好名字,如果处理单元包含了这样两个库,C编译器会报错。为了解决这个问题,C库的厂商会在他们的函数前加上一个独特的字符串。在C++中完美的解决了这个问题。
很多库例如<iostream>已经智能的实现了这个问题,但是在我们自己写头文件时,为了防止这个问题,我们应该在其中加一些东西:
#define FLAG #ifdef FLAG /*...........*/ #endif
在头文件中绝对不可以加入using ...的命名空间,因为这样使用指令去除了对这个特定名字空间保护。
6 全局作用域解析:
编译器默认选择的名字(“最接近”的名字“)可能不是我们要用的名字,作用域解析符可以避免这种情况.S::F();
Thinking in C++读书笔记---数据抽象,布布扣,bubuko.com
原文:http://blog.csdn.net/b_silence/article/details/20764815