一、编译器为空类生成函数的原型以及函数创建的时机
在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
差不多最经典的就是这个了: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
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
1. C++默认调用哪些函数当类中的数据成员类型是trival数据类型(就是原c语言的struct类型)时,编译器默认不会创建ctor、 copy ctor、assign operator、dctor。只有在这些函数被调用时,编译器才会创建他们。这时候我们要自己创建构造函数,初始化内置数据类型。一般...
分类:
编程语言 时间:
2014-09-15 22:37:09
阅读次数:
234
最通用的模板交换函数模式:创建临时对象,调用对象的赋值操作符template void swap ( T& a, T& b ) { T c(a); a=b; b=c; } 需要构建临时对象,一个拷贝构造,两次赋值操作。针对int型优化void swap(int & ...
分类:
编程语言 时间:
2014-09-10 23:49:31
阅读次数:
307
重载操作符与转换--赋值、下标、成员訪问操作符一、赋值操作符 类赋值操作符接受类类型形參,通常该形參是对类类型的const引用,但也能够是类类型或对类类型的非const引用。假设未定义这个操作符,则编译器将合成它。类赋值操作符必须是类的成员,以便编译器能够知道是否须要合成一个。并且还能够为一个类定....
分类:
编程语言 时间:
2014-08-29 19:55:58
阅读次数:
368