发布时间:2012-12-11 20:24:19
1:malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。2:对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加于malloc/free。3:因此C++语言需要一个能完成动态内存分配和初始化工作的运算符new,以及一个能完成清理与释放内存工作的运算符delete。注意new/delete不是库函数。总结:1:当我们使......【阅读全文】
发布时间:2012-12-11 12:46:01
clock()函数的功能: 这个函数返回从“开启这个程序进程”到“程序中调用C++ clock()函数”时之间的CPU时钟计时单元(clock tick)数当程序单线程或者单核心机器运行时,这种时间的统计方法是正确的。但是如果要执行的代码多个线程并发执行时就会出问题,因为最终end-begin将会是多个核心总共执行的时钟嘀嗒数,因此造成时间偏大。......【阅读全文】
发布时间:2012-12-09 22:55:10
深拷贝和浅拷贝一定是很多C++菜鸟比较难以理解的一个知识点,很多老鸟估计也不是很明白其内部的原理。其实这涉及到C 内部模型的两个概念,即Default Memberwise Initialization 和bitwise copy semantics。这两个名字是不是感觉很怪,下面我们就来慢慢分析。 Default Memberwise Initialization: 这是C 模型的内部一种实现方案,其原理就是对于同一类的两个对象直接的赋值进行的暗箱操作。说白了,就是将一个对象的内存空间中的数据,原封不动的拷贝出另一份来填满另一个对象的内存......【阅读全文】