介绍目录: 1.类成员 1.1 成员函数 1.2 构造函数 1.2.1 对构造函数的理解 1.2.2成员初始化列表 1.2.3必须使用成员初始化列表的几种情况 1.2.4对于拷贝构造函数的参数是一个引用的理解 1.2.5对深拷贝和浅拷贝的理解 1.3析构函数 1.3.1 单继承 1.3.2 多继承 ...
分类:
编程语言 时间:
2018-12-22 01:34:48
阅读次数:
226
一、为什么使用智能指针?智能指针的原理? C/C++中的堆内存分配和释放的方式主要是: malloc/free 以及 new/delete 等。 使用new 和delete 管理内存存在三个常见问题: 1.忘记delete(释放) 内存,或者异常导致程序过早退出,没有执行 delete。忘记释放动态 ...
分类:
编程语言 时间:
2018-12-18 18:00:23
阅读次数:
300
-无参构造函数 没有参数的构造函数: 当类中没有定义构造函数时,编译器默认提供一个无参构造函数,并且其函数体为空; -拷贝构造函数 参数为const class_name & 的构造函数 (当前类对象的引用): 当类中没有定义拷贝构造函数,编译器默认提供一个拷贝构造函数,简单的进行成员变量的复制。 ...
分类:
其他好文 时间:
2018-12-12 12:19:38
阅读次数:
153
大整数运算的List 采用了双向链表、构造方法 参考:双向链表(C++) C++ string转int C++ cout输出指定位数 不足补0 C++ string的截取、替换、查找子串 C++拷贝构造,赋值构造 大整数乘法 大整数除法则用,补0法 C/C++ 程序运算时间 List.h List. ...
分类:
其他好文 时间:
2018-12-06 17:46:33
阅读次数:
219
拷贝控制 右值与const引用 背景:当一个函数的返回值是自定义类型时,调用侧用什么类型接收?? 1,如果自定义类型的拷贝构造函数的参数用const修饰了:可以用下面的方式接收。 2,如果自定义类型的拷贝构造函数的参数没有用const修饰了:必须用下面的方式接收 编译错误: 解释: 第一种条件下,用 ...
分类:
编程语言 时间:
2018-12-04 00:07:02
阅读次数:
217
在C++11中有两个智能指针类型来管理动态对象,share_ptr允许多个指针指向同一个对象,unique_ptr则“独占”所指对象。 我们知道指针或引用在离开作用域时是不会进行析构的,但是类在离开作用域时会自动执行析构函数,所以我们可以用一个类来实现指针指针(unique_ptr本质上是一个类,只 ...
分类:
其他好文 时间:
2018-12-03 13:59:29
阅读次数:
808
1、构造函数和析构函数 2、拷贝构造函数 3、 应用场景 3.1 如果函数返回值是用一个对象接收的,那么会发生一个值拷贝,通过拷贝构造函数创建一个匿名对象。如下有函数Test func2(){ }: 3.2 如果返回值有一个对象来接收,那么这个接收过程不会出发值拷贝。 3.3 另一种更为复杂的情况, ...
分类:
其他好文 时间:
2018-12-01 21:53:39
阅读次数:
133
多线程 等待一次性事件 std::promise用法 背景:不是很明白,不知道为了解决什么业务场景,感觉std::async可以优雅的搞定一切的一次等待性事件,为什么还有个std::promise。 用法:和std::async一样,也能够返回std::future,通过调用get_future方法 ...
分类:
编程语言 时间:
2018-11-25 20:39:52
阅读次数:
212
上面例子中拷贝构造函数1才是系统默认的拷贝构造函数,在自己写的代码中这两个拷贝构造函数都没有什么问题,但是如果用于stl模板参数时,第二个拷贝构造函数往往会出现一些莫名其妙的错误,为了谨慎起见,以后拷贝构造函数的参数都用const修饰 ...
分类:
编程语言 时间:
2018-11-18 00:45:25
阅读次数:
227
通过例子来介绍下C++类的几个基础构造函数。 我们以一个C类型的字符串为例: (一)、我们定义一个myString类,仅包含一个char* 的指针。先来看看它的默认构造函数: 这里仅是申请了一块内存,对传入字符串进行了拷贝。 (二)、关于拷贝构造函数。拷贝构造函数是仅是对于传入对象的一次深拷贝。记得 ...
分类:
其他好文 时间:
2018-11-17 13:22:01
阅读次数:
203