'scalar deleting destructor' 和 'vector deleting destructor'的区别
2013-05-12 15:11
411 查看
在C++的的虚表中的以一个函数往往是'scalar deleting destructor'或 'vector deleting destructor',这两个函数的主要区别是:
scalar deleting destructor代表对象的析构函数代理;对应的delete A;
'vector deleting destructor'代表对象数组的析构函数代理; 对应的delete [] A;
void scalar_deleting_destructor(A* pa) { pa->~A(); A::operator delete(pa); }
void vector_deleting_destructor(A* pa, size_t count) { for (size_t i = 0; i < count; ++i) pa[i].~A(); A::operator delete[](pa); }
scalar deleting destructor代表对象的析构函数代理;对应的delete A;
'vector deleting destructor'代表对象数组的析构函数代理; 对应的delete [] A;
相关文章推荐
- 'alter system switch logfile' 和 'alter system archive log current'的区别
- '\r' 与 '\n'的区别
- 'BOOL' 和 'bool' 的区别?
- 'physical corruption' 和'logical corruption' 的区别
- " "(双引号)与 ' '(单引号)的区别 (转载)
- "".equals(str)和str.equals('"")的区别
- 'isEqua' 和 '==' 的区别
- 【未解决】php 中 '' "" null empty的区别
- '' 和 "" 区别
- " "(双引号)与 ' '(单引号)的区别
- Compiler Warning C4150: deletion of pointer to incomplete type 'XXX'; no destructor called
- 解除SQL对组件"Ad Hoc Distributed Queries"的"STATEMENT'OpenRowset OpenDatasource"的访问
- 'cl' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
- 'release' is unavailable: not available in automatic reference counting mode..
- Makefile '=' ':='区别
- 在c/c++中的&、|和&&、||的区别(易混淆)
- &和&&的区别
- "=="和equals方法的区别
- "Host 'localhost' is not allowed to connect to this MySQL server" 的原因及解决办法
- 静态变量和成员变量的区别 && 成员变量和局部变量的区别