在赋值运算符中要特别注意可能出现别名的情况,其理由基于两点。其中之一是效率。如果可以在赋值运算符函数体的首部检测到是给自己赋值,就可以立即返回,从而可以节省大量的工作,否则必须去实现整个赋值操作。另一个更重要的原因是保证正确性。一个赋值运算符必须首先释放掉一个对象的资源(去掉旧值),然后根据新值分配...
分类:
其他好文 时间:
2014-08-11 14:56:22
阅读次数:
212
当涉及到继承时,派生类的赋值运算符也必须处理它的基类成员的赋值!看看下面:class base {public: base(int initialvalue = 0): x(initialvalue) {}private: int x;};class derived: public base {.....
分类:
其他好文 时间:
2014-08-11 14:55:22
阅读次数:
250
基本概念: 1. 操作符重载:C++支持对某个操作符赋予不同的语义 2. new操作符:申请内存,调用构造函数关于c++ new操作符的重载你知道c++的new操作符和operator new的区别么?也许你还会问,他们有区别吗?当你写下面这样的代码时,string *pa = new stri.....
分类:
编程语言 时间:
2014-08-11 14:21:02
阅读次数:
221
#include #include #include #include #include using namespace std;struct node{ char msg[20]; int a,b;};struct cmp{ bool operator()(const node ...
分类:
其他好文 时间:
2014-08-10 21:17:20
阅读次数:
214
C++编译器自己合成的构造函数:默认构造函数copy构造函数copy assigment操作符析构函数(编译器产生的析构时non-virtual)copy assignment(当含有const以及reference时不能自动合成)
分类:
编程语言 时间:
2014-08-10 15:23:40
阅读次数:
257
内置类型手动初始化类类型-构造函数(确保构造函数将对象的每个成员都初始化)类构造函数初始化列表与函数体内赋值的区别:效率更高函数内的赋值语句执行时先执行成员的默认构造函数,再执行copy assignment初始化列表直接执行一次 copy构造函数含有const成员、reference成员时需使用初...
分类:
其他好文 时间:
2014-08-10 15:16:20
阅读次数:
171
Overflow
Write a program that reads an expression consisting of two non-negative integer and an operator. Determine if either integer or the result of the expression is too large to be rep...
分类:
其他好文 时间:
2014-08-09 21:35:29
阅读次数:
321
看下面一个表示string对象的类:// 一个很简单的string类class string {public: string(const char *value); ~string(); ... // 没有拷贝构造函数和operator=pr...
分类:
其他好文 时间:
2014-08-09 18:14:08
阅读次数:
186
Divide Two IntegersDivide two integers without using multiplication, division and mod operator.不用* 、/、%来做除法。只能加减了啊亲!算法思路:一个一个加上去必超时,例如dividend = Integ...
分类:
其他好文 时间:
2014-08-08 20:59:36
阅读次数:
186
模版代码:#include#include#includeusing namespace std;struct node{ friend bool operator qi; for(i = 0; i , greater >qi2; for(i = 0; i qn; node...
分类:
其他好文 时间:
2014-08-08 17:54:56
阅读次数:
246