Divide two integers without using
multiplication, division and mod operator. 1 class Solution { 2 public: 3 int
divide(int dividend, int divisor) ...
分类:
其他好文 时间:
2014-06-06 17:40:07
阅读次数:
193
条款35 placement new
直接调用构造函数是行不通的,然而可以通过使用placement new来哄骗编译器调用构造函数:
void *operatornew(size_t, void* p) throw()
{ return p;}
placement new是operator new的一个标准的重载版本,也位于全局名字空间中,但和我们通常看到的operator new不同,...
分类:
编程语言 时间:
2014-06-05 09:20:32
阅读次数:
315
在看这个例子之前,可以先看看:详解C和C++中的const和const和static变量的存放位置这样将会对const有非常全面的了解和认识:
下面我们将通过下面的例子看看const的一些非常不易发觉的错误:
#include
using namespace std;
class String
{
public:
friend ostream& operator<<(ostream& os...
分类:
其他好文 时间:
2014-06-05 02:53:26
阅读次数:
273
条款11:在operator = 中处理"自我赋值"...
分类:
其他好文 时间:
2014-06-04 21:01:03
阅读次数:
287
特殊工具与技术--优化内存分配[续1]三、operator new函数和operator delete 函数– 分配但不初始化内存 首先,需要对new和delete表达式怎样工作有更多的理解。当使用new表达式 string *sp = new string("initialized");
的时候,实际上发生三个步骤: 1)首先,表达式调用名为operatornew 的标准库函数,分配足够大...
分类:
编程语言 时间:
2014-06-04 13:42:19
阅读次数:
453
Description定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算与输出操作。(1)参加运算的两个运算量可以都是类对象,也可以其中有一个是实数,顺序任意。例如,c1+c2,d+c1,c1+d均合法(设d为实数,c1,c2为复数)。(2)输出的算数,在复数两端加上括号,实部...
分类:
编程语言 时间:
2014-06-02 19:40:53
阅读次数:
503
为什么赋值运算符要返回引用??因为赋值操作会改变左值,而 +
之类的运算符不会改变操作数,所以说赋值运算符重载要返回引用以用于类似 (a=b)=c 这样的再次对a=b进行写操作的表达式。+ 返回一个临时对象是合情合理的
,你若返回引用大多数情况下也不会出错或导致某个操作数被意外修改,但这就使(a+b...
分类:
编程语言 时间:
2014-06-02 08:57:00
阅读次数:
382
Divide two integers without using multiplication, division and mod operator.
不使用乘法、除法和求模运算求两个数相除。...
分类:
其他好文 时间:
2014-06-01 18:16:23
阅读次数:
311
#include
using namespace std;
//template
class Int
{
friend ostream& operator
public:
Int(int i):m_i(i)
{
}
Int& operator++()
{
++(this->m_i);
r...
分类:
其他好文 时间:
2014-06-01 09:00:22
阅读次数:
209
C++的前世今生:C的结构化思想;Ada的模版思想;Fortran的运算符重载思想;Simula的OO思想:封装,继承,多态;C++类型描述了变量的三个特征:该类型在内存中占用物理空间的大小(空间读取范围);该类型的值的合法的取值范围(位模式解释方法);合法的操作集(数据的用法);C++的整数类型有...
分类:
编程语言 时间:
2014-05-31 20:57:08
阅读次数:
481