这段时间想稍微系统地学下: 1、Mat-基本图像容器: OpenCV函数中输出图像的内存分配是自动完成的(如果不特别指定的话)。 使用OpenCV的C++接口时不需要考虑内存释放问题。 赋值运算符(=)和拷贝构造函数( Mat A,Mat B(A) )只拷贝信息头。 使用函数 clone() 或者 ...
分类:
其他好文 时间:
2017-01-31 23:57:56
阅读次数:
378
在前面的文章中,细致地分析了构造函数,拷贝构造函数,赋值运算符,析构函数这几个类中最重要函数的用法。 如果严格地遵循这些做法,可以消除绝大部分资源管理的问题。 然而,要想更灵活的使用对象中的资源,仅仅这些还不够。譬如,若你想自己控制对象资源的生命周期(不要在作用域结束的时候自动被析构掉),那就应当好... ...
分类:
其他好文 时间:
2017-01-27 12:58:37
阅读次数:
254
如果你不想要编译器帮你自动生成的拷贝机制 (参考前文),那么你应当明确的拒绝。 如何拒绝?这便是本文要解决的主要问题。 ...
分类:
其他好文 时间:
2017-01-27 12:02:20
阅读次数:
177
声明一个C++字符串 声明一个C++字符串 string类的构造函数和析构函数如下: string s; //生成一个空字符串s string s(str) //拷贝构造函数 生成str的复制品 string s(str,ss) //将字符串str内以ss开始的部分当作字符串的初值 string s ...
分类:
其他好文 时间:
2017-01-21 15:54:09
阅读次数:
183
一,字符串的概念 1.字符串与字符指针的比较 string是STL封装的一个类,char *是一个指向字符的指针,string是对char *的封装,是一个char *的容器。 string不需要考虑内存的释放和越界,string会管理char *的内存,在构建,赋值,销毁等操作都是由string自 ...
分类:
其他好文 时间:
2017-01-17 00:21:27
阅读次数:
188
1、类成员为const类型 2、类成员为引用类型 运行结果: 究其因 const对象或引用只能初始化但是不能赋值。构造函数的函数体内只能赋值而不是初始化,因此初始化const对象或引用的唯一机会是构造函数函数体之前的初始化列表中。 从无到有叫初始化,初始化(调用拷贝构造函数)创建了新对象;赋值(调用 ...
分类:
其他好文 时间:
2017-01-14 17:09:18
阅读次数:
148
啥是POD类型? POD全称Plain Old Data。通俗的讲,一个类或结构体通过二进制拷贝后还能保持其数据不变,那么它就是一个POD类型。 平凡的定义 1.有平凡的构造函数 2.有平凡的拷贝构造函数 3.有平凡的移动构造函数 4.有平凡的拷贝赋值运算符 5.有平凡的移动赋值运算符 6.有平凡的 ...
分类:
编程语言 时间:
2017-01-11 13:04:28
阅读次数:
283
一,对象的动态建立和释放 1.什么是对象的动态建立和释放 通常我们创建的对象都是由C++编译器为我们在栈内存中创建的,我们无法对其进行生命周期的管理。所以我们需要动态的去建立该对象,因此我们需要在堆内存中创建对象和释放对象。在C语言中为我们提供了malloc()函数和free()函数来为我们提供在堆 ...
分类:
编程语言 时间:
2017-01-10 19:16:29
阅读次数:
189
什么时候需要定义自己的拷贝构造函数: 当类中包含有,动态分配成员 或者 指针 的时候。 如果使用默认构造函数,则新构造出来的 新类 和 旧类 里面的指针成员 指向同一个空间, 而当其中一个类 清空掉那个空间 。另一个类的指针就会变成野指针(因为空间已经被清空) , 也就是说默认构造函数是复制值(地址 ...
分类:
其他好文 时间:
2016-12-30 01:47:33
阅读次数:
207