自己重写operator new时(条款10解释了为什么有时要重写它),很重要的一点是函数提供的行为要和系统缺省的operator new一致。实际做起来也就是:要有正确的返回值;可用内存不够时要调用出错处理函数(见条款7);处理好0字节内存请求的情况。此外,还要避免不小心隐藏了标准形式的new,不...
分类:
其他好文 时间:
2014-08-06 17:21:01
阅读次数:
234
原文:http://blog.csdn.net/tianshuai1111/article/details/7687983一,概述 仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。 有些...
分类:
编程语言 时间:
2014-08-06 14:41:21
阅读次数:
339
先分析一条语句:Base *pb= new Base;这条语句是怎么执行的?首先,这个函数调用标准C++的operator new()函数,然后调用Base的构造函数。如果我们自定义new时,可以自定义一个new,如class Base { static void* operator new(...
分类:
编程语言 时间:
2014-08-06 14:21:51
阅读次数:
207
1 #include 2 using std::cout; 3 using std::endl; 4 #define new New (__FILE__, __LINE__) 5 6 void * operator new (size_t size, const char * filen...
分类:
编程语言 时间:
2014-08-05 13:53:49
阅读次数:
184
Problem Description:
Divide two integers without using multiplication, division and mod operator.
分析:题目意思很容易理解,就是不用乘除法和模运算求来做除法,很容易想到的一个方法是一直做减法,然后计数,但是提交之后显示超时,在网上找到一种解法,利用位运算,意思是任何一个整数可以表示成以2的幂为...
分类:
其他好文 时间:
2014-08-04 21:33:28
阅读次数:
307
C++允许手工管理内存。依据使用内存的行为特征,然后修改分配和归还工作,以求获得其所建置的系统的最佳效率(包括时间和空间)。这给了程序员通过定制operator new和operator delete的方式来更改new与delete表达式从而更改内存管理方案的自由。但是享受这种自由的时候必须遵守一定的规范和条款。本文在此基础上补充解释一些特别容易引起误解的问题。...
分类:
其他好文 时间:
2014-08-04 14:24:47
阅读次数:
221
C++提供了operator关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名。...
分类:
编程语言 时间:
2014-08-03 01:47:04
阅读次数:
292
在c++赋值运算符函数的学习中,对于返回值类型的问题,一直非常费解,今天彻底总结一些每种不同返回值类型的结果:
1、当返回值为空时:
void hasptr::operator=(const hasptr& s)
这个时候如果只有一个‘=’(a = b)运算那就没问题,但是如果存在‘=’(a = b = c)的链式操作时,编译器就会报错
我们看:a = b = c;
程序会先运行...
分类:
其他好文 时间:
2014-08-02 23:32:54
阅读次数:
316
//25...9.4.
//4.71.3..6
//8.34.759.
//3.8.7..69
//.1.3.24..
//5.49.6.83
//9.6.3.7.8
//.3.6.8.1.
//1.2.9.6.4
struct node
{
node(int r,int c):row(r),col(c) {}
friend ostream& operator <<(ostr...
分类:
其他好文 时间:
2014-08-02 15:31:53
阅读次数:
272
STL实现优先队列
使用方法:
头文件:
#include
声明方式:
priority_queueq;
结构体的声明方式:
struct node
{
int x, y;
friend bool operator b.x; //结构体中,x小的优先级高
}
};...
分类:
其他好文 时间:
2014-08-01 13:52:41
阅读次数:
186