![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
「已注销」
这个作者很懒,什么都没留下…
展开
-
关于STL中的Vector,list和deque
1 vector与list区别vector为存储的对象分配一块连续的地址空间,因此对vector中的元素随机访问效率很高。在vecotor中插入或者删除某个元素,需要将现有元素进行复制,移动。如果vector中存储的对象很大,或者构造函数复杂,则在对现有元素进行拷贝时开销较大,因为拷贝对象要调用拷贝构造函数。对于简单的小对象,vect原创 2017-02-19 22:06:21 · 447 阅读 · 0 评论 -
如何禁用拷贝构造函数和禁用重载赋值运算符
自定义了一个类,当你觉得不需要系统默认的拷贝构造函数以及重载赋值运算符时,你需要手动禁用这些。如果类的成员中有指针的话,浅拷贝方式的结果是两个不同对象的指针指向同一块内存区域,容易出现访问冲突,多次delete等错误,不是我们所希望的。禁止拷贝/赋值将拷贝构造函数和重载赋值运算符设为private来禁止拷贝#define DISABLE_COPY(Class) \C原创 2016-11-23 15:43:30 · 2021 阅读 · 0 评论 -
禁用拷贝构造函数和重载赋值运算符
【方法】1,将复制构造函数和赋值操作符声明为private。2,若也不允许友元和成员使用,只提供成员的声明而不提供定义。这样当程序中出现复制或赋值现象时,会造成链接错误。#define DISABLE_COPY(Class) \Class(const Class &); \Class &operator=(const Class &)class Widget原创 2016-11-23 16:06:28 · 902 阅读 · 0 评论 -
c++ 子类调用父类有参构造函数
(1)多态性在C++或者Java中,多态性的最大好处,以我目前粗浅的理解,是减少代码量。子类越多,越明显。(2)构造函数的调用FatherClass *pt = new ChildClass;父类指针-->子类实例 , 首先调用父类无参构造函数,然后调用子类构造函数。(3)如果子类构造函数无参数,一切都好办。但是,往往子类构造函数需要参数。那么应该怎么办呢?可以这么写:子原创 2016-11-16 17:29:04 · 17031 阅读 · 2 评论 -
C++的拷贝构造函数、operator=运算符重载,深拷贝和浅拷贝、explicit关键字
1、在C++编码过程中,类的创建十分频繁。简单的功能,当然不用考虑太多,但是从进一步深刻理解C++的内涵,类的结构和用法,编写更好的代码的角度去考虑,我们就需要用到标题所提到的这些内容。最近,在看单例模式,觉得十分有趣,然而如果想要掌握单例模式,就必须掌握这些内容。下面是我的一些学习总结,参考了很多博客内容。文末将注明出处。2、先上代码// testSingleMode.cpp :原创 2016-11-08 14:39:29 · 7458 阅读 · 0 评论 -
const char* ptr 到底是什么意思
Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:把一个声明从右向左读。char * const cp; ( * 读成 pointer to )cp is a const pointer to char--->cp是一个指向字符char的固定指针const char * ptr;ptr is a poin原创 2016-03-06 02:03:03 · 7142 阅读 · 2 评论 -
”operator=”其实是一个函数名
1. 以前,一直不太明白,重载运算符,今天看了《C++高级编程,第8章》,终于明白了。”operator=”其实是一个函数,关于拷贝构造函数,之前的博客已经写过,当时以为是一个套路。现在终于明白,其实是一个函数,而这个函数 返回了一个 类类型的引用,这个函数的参数是类类型的应用。例子如下:Spreadsheet& operator=(const Spreads原创 2016-12-03 16:11:26 · 2407 阅读 · 1 评论 -
再探C++函数参数里的const, 处理 error : passing const as "this"
之前,一直知道函数参数里面的const的意思。但理解并不深刻。 void foo(const T&) 这是一种常见写法,看起来似乎没有任何问题,但往往难点就藏在细节里面。 如果 T 是int , bool ,其实也没事,怎么玩都行。 可是如果 T 是一个类类型呢? 当 T 是一个 类类型 的时候,我们要注意什么? 什么时候可以原创 2017-01-17 19:00:33 · 8566 阅读 · 2 评论 -
Linux下C++开发环境搭建,最佳方案
以前,曾经写过用Qt在纯Linux下开发,作为编辑器使用,现在随着vscode逐渐成熟,是时候与时俱进了。截止2020年4月,纯Linux下,写C/C++代码的最佳开发环境就是:vscodevscode方便到什么程度,只需要添加几个插件,就可以完美支持:(1)代码跳转(2)自动补全(3)自动生成代码实现对于任何语言的开发者来说,有以上3点功能的编辑器,就足以了。无...原创 2020-04-12 21:45:18 · 4442 阅读 · 0 评论