一、编译器为空类生成函数的原型以及函数创建的时机
在C++中当创建一个空类时,C++就会默认的为这个类创建4个函数:默认的构造函数、析构函数、拷贝构造函数、以及赋值操作符。
C++中创建一个空类:
class Empty {};
默认会生成4个函数,其函数的原型如下:
public: Empty() { ... } Empty(const Empty& rhs) {...
分类:
编程语言 时间:
2014-11-27 12:44:45
阅读次数:
240
2.4.1 22页谈到了关于比较操作符的问题。作者的说法是:赋值操作符返回的都是【真】但是注释下面提示:if(a=false){alert('hello, world');}这段代码中的alert('hello,world');是不会执行的。其他情况可能得闲的时候去看看。
分类:
编程语言 时间:
2014-11-26 13:40:24
阅读次数:
195
a operator= b 与 a = a operator b 并不完全一致,区别在于:1、前者只查询一次a的值,因而具有更快的可能性。2、如果a是一个复杂的表达式(例如列表的索引位置计算,如items[offset + index]),使用增强的赋值操作符时后者较少出错。这是因为,如果计算过程需...
分类:
编程语言 时间:
2014-11-24 11:21:29
阅读次数:
1021
1. 什么是引用引用相当于变量的地址,和指针功能类似,写法不同2. Rule of thumb千万不要返回 局部对象 和 局部对象的指针!为什么呢?一旦从函数出来,所有局部对象都清除!3. Guideline使用时,心中默念第二条正确的例子:int &Return(int a, int b, int...
分类:
其他好文 时间:
2014-11-22 00:43:53
阅读次数:
147
差不多最经典的就是这个了:x = y = z = 15;解读为:x = (y = ( z = 15));如果没有返回值,上述代码就不能通过编译。其实看到标题就差不多明白这一条了,但是为什么连续赋值时最好让其返回一个reference to *this呢?我们来举一个例子:如果我们定义一个类R:R r...
分类:
其他好文 时间:
2014-11-12 16:22:32
阅读次数:
187
第4章 将语句编织成程序 4.1 用运算符对数据进行运算 4.1.1 用表达式表达设计意图 4.1.2 算术运算符 4.1.3 赋值操作符 4.1.4 关系运算符 4.1.5 逻辑运算符 4.1.6 运算符之间的优先顺序 4.1.7 将表达式组织成语句 4.2 条件选择语句 4.2.1 if语句 4...
分类:
其他好文 时间:
2014-11-06 00:36:26
阅读次数:
192
类定义下标操作符时,一般需要定义两个版本:1. 作为类的非const成员函数,返回引用;2. 作为类的const成员函数,返回const引用。首先,什么是类的const成员函数,也就是不改变对象的成员函数。表示方法就是在类的成员函数的声明和定义后面加上const。类的有些对象可能可以改变,有的不能改...
分类:
其他好文 时间:
2014-11-02 20:58:05
阅读次数:
187
首先让我简单解释一下所谓"发布"。发布(publish),使对象可以在当前作用域之外的代码中可见,如果该对象被发布,则该对象的非私有域中引用的所有实例同样也会被发布。不仅仅是作为一个field,当一个对象作为一个方法的参数或者在公有方法中作为返回引用,这都属于发布。而相对地,对于错误的发布,我们将其...
分类:
编程语言 时间:
2014-10-21 21:23:16
阅读次数:
347
11.为需要动态分配内存的类声明一个拷贝构造函数和一个赋值操作符。
显然,由于动态内存分配,绝对会有深浅拷贝的问题,要重写拷贝构造函数,使其为深拷贝,才能实现真正意义上的拷贝。这是我理解的关于要声明拷贝构造函数的原因。
而对于赋值操作符,类似的道理。
A b = a;
b = a;对于上述两种形式,上面调用的是复制构造函数,而下面才是 赋值操作符=。赋值与复制很相似,缺省的操作都是将...
分类:
编程语言 时间:
2014-10-07 21:51:04
阅读次数:
197
c++primer第四版435
1.赋值( = ), 下标( [ ] ) ,调用 ( ( ) ), 成员访问箭头 (->)等操作符必须定义为成员,定义为非成员时,编译器报错
2. 像赋值一样,符合赋值操作符通常应定义为类的成员,但是定义为非成员的复合赋值操作符时不会出现编译错误
3.改变对象状态或给定类型紧密联系的其他一些操作符,如自增,自减和解引用,通常应定义为类的成员
4.对称操作...
分类:
编程语言 时间:
2014-10-03 16:55:54
阅读次数:
219