关于针对class自定义new操作符失败的函数处理
#include <iostream>
#include <new>
using namespace std; class CSaveCurHandler //用于管理new_handler,保存原始的new_handler,在new成功结束后还原.
{
private:
new_handler cur;
public:
CSaveCurHandler(new_handler nh) :cur(nh){} ~CSaveCurHandler()
{
set_new_handler(cur);
}
}; template<class T>
class CWidget
{
private:
static new_handler cur_handler;
public:
static void set_handler(new_handler nh)
{
cur_handler = nh;
} static void *operator new(size_t size) throw(std::bad_alloc)
{
CSaveCurHandler sch(set_new_handler(cur_handler)); //将原始的保存至CSaveCurHandler对象中
return ::operator new(size); //,调用系统原始的new,返回后自动还原new_handler
}
}; void outMen()
{
cout << "内存不够";
} template<class T>
new_handler CWidget<T>::cur_handler = outMen; class MY : public CWidget<MY>
{
private:
char buf[1025 * 1024 * 1024];
}; int main()
{
MY::set_handler(outMen); while (1)
MY *p = new MY; cin.get();
return 0;
}
关于针对class自定义new操作符失败的函数处理的更多相关文章
- 自定义工具'MSDiscocodeGenerator’失败。未能检索当前项目。
问题描述: 引用webservice时不出错,但更新是出现错误 “自定义工具'MSDiscocodeGenerator’失败.未能检索当前项目.” 解决办法: 打开控制面板修复.NET 3.5SP1, ...
- 如何自定义WPF项目的Main函数
原文:如何自定义WPF项目的Main函数 与Winform项目不同,WPF项目的Main函数在项目生成的时候,系统自动在后台为我们生成.根据项目生成方式的不同,其文件位于obj/Debug/App.g ...
- 自定义View编译失败。Binary XML file line #255: Error inflating
02-28 15:17:16.281: DEBUG/AndroidRuntime(391): Shutting down VM 02-28 15:17:16.281: WARN/dalvikvm(39 ...
- OpenERP中自定义模块卸载失败,Postgres数据库删不掉数据库,OpenERP登录不了一直在加载的问题解决方案。
解决方案也就是删除掉不用的数据库,OE会提示当前有N个Session不让Drop数据库. 对于Postgres 9.1 版本,在pgAdmin中查询以下语句: SELECT pg_terminate_ ...
- c# 自定义公共类CallFunction-调用函数信息帮助类
/// <summary> /// 调用函数信息 /// </summary> public class CallFunction { /// <summary> ...
- C++学习笔记15:操作符重载的函数原型列表(推荐)
//普通四则运算 friend A operator +(const A & lhs, const A & rhs); friend A operator -(const A & ...
- PHP内置Web Server探究(二)自定义PHP控制台输出console函数
我们在开发APP的服务器端,当和APP进行联调时通常需要实时跟踪URL请求和参数的接收情况. 但PHP并没有像Python或Java专有的控制台输出函数,Python的print()和Java的Sys ...
- 自定义JSP中的Taglib标签之四自定义标签中的Function函数
转自http://www.cnblogs.com/edwardlauxh/archive/2010/05/19/1918589.html 之前例子已经写好了,由于时间关系一直没有发布,这次带来的是关于 ...
- AngularJs中,如何在父元素中调用子元素为自定义Directive中定义的函数?
最近一段时间准备使用AngularJs中的自定义Directive重构一下代码. 在这里说明一下,把自定义控件封装成Directive并不一定是要复用,而是要让代码结构更加清晰.就好像你将一个长方法拆 ...
随机推荐
- SOAPUI使用教程-MockServices工作原理
在soapUI的可让您只需从WSDL基础服务创建一个基于WSDL服务的符合标准的模拟.被称为“MockService”,这可以直接从内部的soapUI运行,命令行浇道,或甚至标准servlet容器. ...
- MySQL:索引工作原理
索引查找:通过索引键找到索引的叶子节点,再通过叶子节点的标记快速找到表中对应的行数据,再返回指定的列 索引找查是通过索引键定先位到一块局部区域,再开始扫描匹配的数据的. 为什么需要索引(Why is ...
- 使用功能强大的插件FastReport.Net打印报表实例
我第一次使用FastReport插件做的功能是打印一个十分复杂的excel表格,有几百个字段都需要绑定数据,至少需要4个数据源,而且用到横向.竖向合并单元格. 我不是直接连接数据库,而是使用Regis ...
- EmptyResultDataAccessException
报此错误 :org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, act ...
- Android-studio开发 快捷键
这会儿正在学android开发,使用的是Android-studio 记录一下开发工具默认的 快捷键
- 第一章-第一题(小学生四则运算)--By郭青云
1.项目需求 a) 除了整数以外,还要支持真分数的四则运算. (例如: 1/6 + 1/8 = 7/24) b) 让程序能接受用户输入答案,并判定对错. 最后给出总共 对/错 的数量. c) 逐步扩 ...
- 【iCore3 双核心板】【发布基于 iCore3的显示模块(包含7寸屏,4.3寸屏,vga模块等】
====================注意 ==================== 1.本代码仅仅对iCore3客户(使用者)开放: 2.iCore3使用者凭购买id或者订单号给 gingko[A ...
- PHP 生成PDF
一个项目中需要用到网页生成PDF,就是将整个网页生成一个PDF文件, 以前也用过HTML2PDF,只能生成一些简单的HTML代码,复杂的HTML + css 生成的效果惨不忍睹, 百度了一下,发现有个 ...
- php实现网页trace方法
// 记录内存初始使用和开始时间,在系统的入口记录 $beginTime= microtime(TRUE); $start_memory = memory_get_usage(); //die; ec ...
- 分享一个oraclehelper
分享一个拿即用的oraclehelper 首先要引用本机中的oralce access,如果是64位的话,也必须是64位运行,不然会报连接为空connection 等于null. using Orac ...