参考文献:1.黄邦勇帅2.http://www.cnblogs.com/graphics/archive/2012/10/02/2710340.html3.http://blog.csdn.net/pnhuangyu/article/details/12352073分三个部分: 一、基础 二、什.....
分类:
编程语言 时间:
2015-09-05 15:05:04
阅读次数:
199
参考自http://blog.csdn.net/muzi9_17/article/details/6776061和effective c++1.默认构造函数只要定义了自己的构造函数,编译器就不在自动生成默认构造函数。默认构造函数的主要就是对对象的分配空间,不能进行数据的初始化。而且例如Object ...
分类:
编程语言 时间:
2015-08-30 11:07:56
阅读次数:
123
1:一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,如果你写class A{};编译器处理后,就相当于:class A{public:A(); //默认构造函数A(const A&); //拷贝构造函数~A(); //析构函数A& op...
分类:
编程语言 时间:
2015-08-29 20:06:08
阅读次数:
207
强调一下几个重点:
(1)new 操作符申请内存失败,是抛出异常,并不是返回NULL,若想申请失败返回NULL,需要加 (std::nothrow);
(2)使用std::nothrow 需要加头文件 #include
(3)使用assert
(4)构造函数有参数时最好加默认参数,这样就有默认构造函数了,且不要忘了定义为const
(5)赋值操作符函数体if语句中的条件必须是 this ...
分类:
其他好文 时间:
2015-08-27 11:09:44
阅读次数:
172
做leetcode的时候经常看到有结构体的默认构造函数,觉得很奇怪,才发现原来c++的结构体与c语言的结构体不一样,c++的结构体更像是一个类,C++结构体提供了比C结构体更多的功能,如默认构造函数,复制构造函数,运算符重载,这些功能使得结构体对象能够方便的传值。比如,我定义一个简单的结构体,然后将...
分类:
编程语言 时间:
2015-08-25 13:39:23
阅读次数:
179
Pair类型概述
pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下:
pair a;
表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。
pair赋值的方法:
1)创建时初始化:pair fruit1("orange",4.5)...
分类:
其他好文 时间:
2015-08-20 10:29:49
阅读次数:
113
对象初始化列表出现原因
1) 如果我们有一个类成员,它本身是一个类或者是一个结构,而且这个成员它只有一个带参数的构造函数,没有默认构造函数。这时要对这个类成员进行初始化,就必须调用这个类成员的带参数的构造函数,如果没有初始化列表,那么他将无法完成第一步,就会报错。
2) 当类成员中含有一个const对象时,或者是一个引用时,他们也必须要通过成员初始化列表进行初始化,因为这两种对象要在声明后马上初...
分类:
编程语言 时间:
2015-08-19 20:29:23
阅读次数:
130
(参考自《深入理解C++对象模型》)”C++新手一般有两个常见的误解:任何class如果没有定义default constructor,就会被合成一个出来.编译器合成出来的default constructor会明确设定class 内每一个data member的默认值.”现在主要解释第一条为什么是...
分类:
编程语言 时间:
2015-08-19 16:33:02
阅读次数:
182
1. 成员函数只有被需要(被调用)才必须有定义,同理,只有当默认构造函数,拷贝构造函数,赋值操作符,析构函数被需要而类定义它们时,它们才会被编译器创建出来(除非函数在基类中被声明为虚函数,编译器产生的函数是非虚的,public的).2. 并不是只要类没有定义默认构造函数,拷贝构造函数,赋值操作符时编...
分类:
编程语言 时间:
2015-08-19 16:08:28
阅读次数:
121
1. 某些类的含义决定了它们不具备某些功能,也就是说某些函数不能被创造出来以防被错误的使用(例如定义一个Book类,它含有一个表示ISBN的变量,这种情况下拷贝构造函数以及赋值操作符显然是没有意义的,因为任何两种书的ISBN都不同),但是编译器在类的创建者没有声明默认构造函数,拷贝构造函数,赋值操作...
分类:
编程语言 时间:
2015-08-18 19:12:25
阅读次数:
133