一、如果用户没有提供构造函数、copy构造函数、copy assignment操作符和析构函数,当且仅当这些函数被需要的时候,编译器才会帮你创建出来。编译器生成的这些函数都是public且inline。 当你写下这样一个类的时候:class Empty {}; 如果上述的函数是被需要的话,那么编.....
分类:
编程语言 时间:
2014-10-31 01:13:39
阅读次数:
253
Effective C++之‘宁以pass-by-reference-to-const替换pass-by-value’
缺省情况下C++以by value 方式(一个继承自C的方式)传递对象至函数。除非你另外指定,否则函数参数都是以实际实参的复件(副本)为初值,而调用端所获得的亦是函数返回值的一个复件。这些复件(副本)由对象的copy构造函数产出,这可能使得pass-by-value成为费时...
分类:
编程语言 时间:
2014-10-21 17:49:03
阅读次数:
135
“copy构造”与“copy复制”误区:----“=”语法也可以用来调用copy构造函数:如:Constr object3 = object1;区别在于:如果定义一个新的对象(如Constr object3),一定会有个构造函数被调用,不可能调用复制操作。 如果没有新对象被定义(如objec...
分类:
其他好文 时间:
2014-09-30 14:29:19
阅读次数:
134
c++的编译器是非常智能的!当你声明一个空类empty class,如果你的代码有用到这个empty class时,编译器会默默的为你编写一些基本的函数。那么究竟编译器自己添加的函数都有哪些呢?构造函数,析构函数,一个copy构造函数和一个copy assignment操作符。举个例子来说明一下,如果你写下:
class empty{};
就好像你写下这样的代码:
class Empty
{...
分类:
编程语言 时间:
2014-09-22 13:56:02
阅读次数:
145
条款5:Know what functions C++ silently writes and calls译:了解C++默默编写并调用哪些函数在C++中,写一个空类,编译器会自动为它声明一个copy构造函数、一个copy assignment操作符和一个析构函数。如果没有声明任何构造函数,编译器也会...
分类:
编程语言 时间:
2014-09-07 22:21:55
阅读次数:
265
条款05:了解C++默默编写并调用哪些函数编译器默认声明一个default构造函数、一个copy构造函数、一个copy assignment操作符和一个析构函数。这些函数都是public且inline。1 class Empty {2 public:3 Empty() {...}4 ...
分类:
编程语言 时间:
2014-08-31 18:25:41
阅读次数:
225
如果要自己定义STL容器的元素类最好满足STL容器对元素的要求 必须要求: 1、Copy构造函数 2、赋值=操作符 3、能够销毁对象的析构函数 另外: 1、可用的缺省构造函数,序列型容器必须,用于初始化元素 2、==操作符定义,用于判断相等 3、 #include #include using n....
分类:
其他好文 时间:
2014-08-26 17:02:16
阅读次数:
201
原创文章,转载请注明出处:http://blog.csdn.net/sfh366958228/article/details/38816913
闲谈
从北戴河旅游归来,该收心继续上班了,接下来将继续学习《Effective C++》,今天看的是构造/析构/赋值运算部分。
条款05:了解C++默默编写并调用那些函数
当经过编译器处理后,并没有绝对的空类,例如:
class Empty{ };
编译器会为它声明一个default构造函数,一个copy构造函数、一个copy assignment操作符,一...
分类:
编程语言 时间:
2014-08-25 17:09:24
阅读次数:
246
前言 对于一个类来说,最最基础的三类成员函数莫过于:构造函数,析构函数以及拷贝函数 (copy构造函数和=重载函数)。即使你的类没有为这些函数做出定义,C++ 也会自动为你创建。本文将讲述的是 C++ “偷偷”为你创建的这三个函数究竟是怎么样的。 了解这些,能更清楚代码是如何运转的,从而写出自己.....
分类:
编程语言 时间:
2014-08-24 12:51:22
阅读次数:
236
C++编译器自己合成的构造函数:默认构造函数copy构造函数copy assigment操作符析构函数(编译器产生的析构时non-virtual)copy assignment(当含有const以及reference时不能自动合成)
分类:
编程语言 时间:
2014-08-10 15:23:40
阅读次数:
257