随笔分类 -  C/C++

摘要:比较函数 STL默认都是使用()比较的,默认比较使用less(即'<'运算符),如sort(a,a+n),默认将数组按照递增的顺序来排序(前面的元素<后面),但是priority_queue<>默认是大根堆的,这是因为优先队列队首指向最后,队尾指向最前面的缘故!每次入队元素进去经排序调整后,优先级最 阅读全文
posted @ 2021-07-04 22:46 hunter-w 阅读(508) 评论(0) 推荐(0) 编辑
摘要:自定义排序 sort函数第三个参数compare,为自定义比较函数指针,原型如下: bool cmp(const Type &a, const Type &b); 如果是想升序,那么就定义当a<b的时候返回true; 如果是想降序,那么就定义当a>b的时候返回true; 注意compare函数写在类 阅读全文
posted @ 2021-07-04 21:56 hunter-w 阅读(811) 评论(0) 推荐(0) 编辑
摘要:C++智能指针简单剖析 C++智能指针unique_ptr详解与示例 C++智能指针shared_ptr详解与示例 阅读全文
posted @ 2020-12-02 23:18 hunter-w 阅读(52) 评论(0) 推荐(0) 编辑
摘要:https://www.cnblogs.com/DswCnblog/p/5629165.html 阅读全文
posted @ 2020-10-30 12:58 hunter-w 阅读(42) 评论(0) 推荐(0) 编辑
摘要:转载自拷贝构造函数和移动构造函数 C++11之前,对象的拷贝控制由三个函数决定:拷贝构造函数(Copy Constructor)、拷贝赋值运算符(Copy Assignment operator)和析构函数(Destructor)。 C++11之后,新增加了两个函数:移动构造函数(Move Cons 阅读全文
posted @ 2020-10-27 12:43 hunter-w 阅读(1886) 评论(2) 推荐(2) 编辑
摘要:从4行代码看右值引用 阅读全文
posted @ 2020-10-27 12:39 hunter-w 阅读(125) 评论(0) 推荐(0) 编辑
摘要:https://blog.csdn.net/fanyun_01/article/details/79122916 在C++中,我们使用类对数据进行了隐藏和封装,类的数据成员一般都定义为私有成员,成员函数一般都定义为公有的,以此提供类与外界的通讯接口。但是,有时需要定义一些函数,这些函数不是类的一部分 阅读全文
posted @ 2020-10-23 20:36 hunter-w 阅读(96) 评论(0) 推荐(0) 编辑
摘要:函数加上const修饰与不加const,实际上声明了两个不同的函数。在父类中加上const,但是子类同名同参的函数没有加const,他们是两个不同的接口。 阅读全文
posted @ 2020-10-22 12:44 hunter-w 阅读(95) 评论(0) 推荐(0) 编辑
摘要:https://blog.csdn.net/K346K346/article/details/49872023 虽然可以对虚函数进行实调用,但程序员编写虚函数的本意应该是实现动态联编。在构造函数中调用虚函数,函数的入口地址是在编译时静态确定的,并未实现虚调用。但是为什么在构造函数中调用虚函数,实际上 阅读全文
posted @ 2020-10-21 14:57 hunter-w 阅读(756) 评论(0) 推荐(0) 编辑
摘要:https://www.jianshu.com/p/a75b267325c2 思考:指向继承类的基类指针解引用后,是否还具备多态性? #include <iostream> using namespace std; class Base { public: int a; virtual void f 阅读全文
posted @ 2020-10-20 22:19 hunter-w 阅读(232) 评论(0) 推荐(0) 编辑
摘要:虚继承和虚函数是完全无相关的两个概念。 虚继承是解决C++多重继承问题的一种手段,从不同途径继承来的同一基类,会在子类中存在多份拷贝。这将存在两个问题:其一,浪费存储空间;第二,存在二义性问题,通常可以将派生类对象的地址赋值给基类对象,实现的具体方式是,将基类指针指向继承类(继承类有基类的拷贝)中的 阅读全文
posted @ 2020-10-20 13:00 hunter-w 阅读(692) 评论(0) 推荐(0) 编辑
摘要:转载自https://blog.csdn.net/zhengjihao/article/details/77825269 虚继承相关的内容可以参考https://www.cnblogs.com/BeyondAnyTime/archive/2012/06/05/2537451.html 1.空类 cl 阅读全文
posted @ 2020-10-19 20:15 hunter-w 阅读(331) 评论(0) 推荐(0) 编辑
摘要:构造函数 构造函数主要用来在创建对象时完成对对象属性的一些初始化等操作, 当创建对象时, 对象会自动调用它的构造函数。 一般来说, 构造函数有以下三个方面的作用: 给创建的对象建立一个标识符 为对象数据成员开辟内存空间 完成对象数据成员的初始化 构造函数不能被显示的调用。 初始化列表与赋值 C++类 阅读全文
posted @ 2020-09-23 13:00 hunter-w 阅读(109) 评论(0) 推荐(0) 编辑
摘要:命名空间 定义 namespace example 使用 使用using namespace + 命名空间; 使用using 命名空间::变量名/函数名; 基本输入输出 C++使用steam进行输入输出 cin、cout、cerr、clog 注: cin不支持空格和回车字符串的输入,请使用getch 阅读全文
posted @ 2020-09-21 19:45 hunter-w 阅读(131) 评论(0) 推荐(0) 编辑
摘要:定义数据成员为静态变量,表明此全局数据逻辑上属于该类。 定义成员函数为静态函数,表明此全局函数逻辑上属于该类,而且该函数只对静态数据、全局数据或者参数进行操作,而不对非静态数据成员进行操作。 静态数据成员 静态数据成员在定义或说明时前面加关键字static,如: class A { int n; s 阅读全文
posted @ 2020-07-08 12:30 hunter-w 阅读(435) 评论(0) 推荐(0) 编辑
摘要:使用命名空间 在引用命名空间成员时,要用命名空间名和作用域分辨符对命名空间成员进行限定,以区别不同的命名空间中的同名标识符。即: 命名空间名::命名空间成员名 c++提供了一些机制,能简化使用命名空间的使用: 使用命名空间别名 可以为命名空间起一个别名,用来替代较长的命名空间名,如: namespa 阅读全文
posted @ 2020-07-07 21:19 hunter-w 阅读(164) 评论(0) 推荐(0) 编辑
摘要:C++构造函数调用顺序 创建派生类的对象,基类的构造函数优先被调用(也优先于派生类里的成员类); 如果类里面有成员类,成员类的构造函数优先被调用;(也优先于该类本身的构造函数) 基类构造函数如果有多个基类,则构造函数的调用顺序是某类在类派生表中出现的顺序而不是它们在成员初始化表中的顺序; 成员类对象 阅读全文
posted @ 2020-07-07 19:40 hunter-w 阅读(968) 评论(0) 推荐(0) 编辑
摘要:重载 相同的范围(在同一个类中) 相同的函数名字,不同的参数列表,与返回值类型没有关系 virutal关键字可有可无 重写 不同的范围(分别位于派生类与基类) 相同的函数名字,相同的参数 基类函数必须要有virtual关键字 隐藏 隐藏指在某些情况下,派生类中的函数屏蔽了基类中的同名函数,包括以下几 阅读全文
posted @ 2020-07-07 14:35 hunter-w 阅读(251) 评论(0) 推荐(0) 编辑
摘要:访问限定符 继承关系 从基类继承过来的成员在子类中(对子类内的成员)访问权限的变化情况: 1.基类成员对派生类成员都是:公有和保护的成员是可见的,私有的的成员是不可见的。 2.基类成员对派生类实例化出来的对象来说:要看基类的成员在派生类中变成了什么类型的成员。如:私有继承时,基类的公有成员和私有成员 阅读全文
posted @ 2020-07-07 14:14 hunter-w 阅读(292) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示