摘要: new操作符的另一种变体——placement new操作符,让你能够指定要使用的位置。 要使用布局new特性时,需要包含头文件new。 eg:#includechar buffer[50];int main(){ char * p1, * p2;p1=new int[20];p2=new (buffer) int [20];}布局new操作符使用传递给他的地址,它不跟踪哪些内存单元已经被使用,也不查找未使用的内存块。delete只能用于删除由new操作符分配的堆内存,而不能处理布局new操作符分配的静态内存。 阅读全文
posted @ 2013-07-19 17:13 sunnie_ 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 内容包括: 单独编译;存储持续性、作用域和链接性;布局(placement)new 操作符;名称空间。C++允许甚至鼓励程序员将组件函数放在独立的文件中。与其将结构声明加入到每一个文件中,不如将其放在头文件中,然后在每一个源代码文件中包含该头文件,这样,要修改结构声明时,只需在头文件中做一次改动即可。头文件中长包含的内容有:函数原型;使用#define或者const定义的符号常量;结构声明;类声明;模板声明;内联函数。当包含用户自己创建的头文件时,使用双引号包含文件名,从而与标准头文件的尖括号区别。eg:"coordin.h",而不是.在同一个文件中只能将同一个头文件包含一 阅读全文
posted @ 2013-07-19 17:03 sunnie_ 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 函数模板:是通用的函数描述,也就是说,他们使用通用类型来定义函数,其中的通用类型可用具体类型替换。通过将类型作为参数传递给模板,可使编译器生成该类型函数。函数模板允许以任意类型的方式来定义函数,例如:Templatevoid Swap (Any & a, Any & b){具体定义}最新的c++标准使用typename 替代 class。如果考虑向后兼容的话用class比较好。 使用函数Swap()时,编译器将检查所使用的参数类型,并生成相应的函数。注意:函数模板不恩能够缩短可执行程序。最终的代码不包含任何模板,而只包含了微程序生成的实际函数。使用模板的好处:它使生成多个函数定 阅读全文
posted @ 2013-07-19 12:18 sunnie_ 阅读(112) 评论(0) 推荐(0) 编辑