2014年4月3日
摘要: 相同点:都可用于申请动态内存和释放内存不同点:(1)操作对象有所不同。malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数的任务强加malloc/free。(2)用法上也有所不同。函数malloc 的原型如下:void * malloc(size_t size);用malloc 申请一块长度为length 阅读全文
posted @ 2014-04-03 18:28 心贝 阅读(258) 评论(0) 推荐(0) 编辑
摘要: C++中, 函数后面加throw关键字有什么作用呢? 为什么要加throw关键字呢?C++函数后面后加关键字throw(something)限制,是对这个函数的异常安全性作出限制。举例及解释如下:void fun() throw() 表示fun不允许抛出任何异常,即fun是异常安全的。void fun() throw(...) 表示fun可以抛出任何形式的异常。void fun() throw(exceptionType) 表示fun只能抛出exceptionType类型的异常。还不明白吗?看这个解释(一个形象笑话):throw() 大概会说:“噢,不管你抛什么,就是不准抛。”throw(.. 阅读全文
posted @ 2014-04-03 16:08 心贝 阅读(394) 评论(0) 推荐(0) 编辑