随笔分类 -  c++重构

摘要:单例模式 阅读全文
posted @ 2021-11-09 01:32 wsq1219 阅读(21) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2021-11-07 21:45 wsq1219 阅读(19) 评论(0) 推荐(0)
摘要:友元类 友元成员函数 阅读全文
posted @ 2021-11-07 21:31 wsq1219 阅读(48) 评论(0) 推荐(0)
摘要:常量引用不同于指针的地方 加上Mutable后,const成员函数可以修改成员变量的值 阅读全文
posted @ 2021-11-05 14:22 wsq1219 阅读(37) 评论(0) 推荐(0)
摘要:自动进行一次隐式转换 如果在构造函数前加上explicit 转换就会失败 此时就需要显示转换 阅读全文
posted @ 2021-11-05 07:13 wsq1219 阅读(54) 评论(0) 推荐(0)
摘要:shared_ptr引用计数机制 阅读全文
posted @ 2021-11-02 11:08 wsq1219 阅读(23) 评论(0) 推荐(0)
摘要:在类外静态成员函数使用非静态成员变量,通过对象名 阅读全文
posted @ 2021-11-01 22:44 wsq1219 阅读(47) 评论(0) 推荐(0)
摘要:1.原始字面量 对于有反斜杠的,避免转义 写windows路径的时候写两个\\,在Linux中没问题 C++11: 2.指针空值类型 nullptr nullptr就是为c++量身定做的空指针类型,可以自动转换(隐式匹配)为其它类型的指针。NULL就是0 3.constexpr 常量表达式的编译往往 阅读全文
posted @ 2021-10-31 15:58 wsq1219 阅读(60) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2021-10-28 00:39 wsq1219 阅读(15) 评论(0) 推荐(0)
摘要:c++中类所占的大小计算并没有想象中那么简单,因为涉及到虚函数成员,静态成员,虚继承,多继承以及空类等,不同情况有对应的计算方式,在此对各种情况进行总结。 首先要明确一个概念,平时所声明的类只是一种类型定义,它本身是没有大小可言的。 我们这里指的类的大小,其实指的是类的对象所占的大小。因此,如果用s 阅读全文
posted @ 2021-10-27 00:58 wsq1219 阅读(454) 评论(0) 推荐(0)
摘要:友元函数是个函数,通过声明为某个类的友元函数,他可以访问这个类的所有成员变量 阅读全文
posted @ 2021-10-20 00:42 wsq1219 阅读(141) 评论(0) 推荐(0)
摘要:加上override重写 虚函数要结合指针使用,不要用对象来使用 多态性 关于虚函数表指针和虚函数表的实现机制 凡是声明有虚函数的类,其对象都含有一个隐藏的data member,用来指向该class 的vtbl。这个隐藏的data member就是vptr(virtual table Pointe 阅读全文
posted @ 2021-10-16 21:33 wsq1219 阅读(63) 评论(0) 推荐(0)
摘要:对于*pai=120这种方式属于未定义行为,尽量不要这么干(因为原来是一个常量) 阅读全文
posted @ 2021-10-16 13:20 wsq1219 阅读(18) 评论(0) 推荐(0)
摘要:左值引用,就是绑定到左值的引用,通过&来获得左值引用。那么,什么是左值呢?左值,就是在内存有确定存储地址、有变量名,表达式结束依然存在的值。 std::move 可以把左值转换成右值,没有移动能力 string里的移动构造函数清空st 阅读全文
posted @ 2021-10-08 15:06 wsq1219 阅读(227) 评论(0) 推荐(0)
摘要:后置返回类型 内联函数 内联函数需要的是函数本体 优缺点:代码量应该尽量的少,避免代码膨胀 constexpr函数也可以看成是更严格的一种内联函数 这样可以吗? 阅读全文
posted @ 2021-10-07 19:59 wsq1219 阅读(69) 评论(0) 推荐(0)
摘要:Human *phuman = new Men; phuman->funcmen();//虽然new子类对象,但是你是父类指针无法调用子类成员函数 父类指针可以指向子类,发过来不行 在父类中加了虚函数后 Human *phuman = new Men; phuman->eat(); //此时调用的是 阅读全文
posted @ 2021-09-21 19:45 wsq1219 阅读(159) 评论(0) 推荐(0)
摘要:在linux下写一个可执行程序,然后进行反编译 查找main函数入口地址 找到start start函数准备好参数之后立即调用 libc_start_main libc_start_main做了些什么? 当可执行性程序中的所有段被加载到内存中后,PC指针就指向代码段起始地址,进而执行指令 查找一下这 阅读全文
posted @ 2021-08-22 22:27 wsq1219 阅读(129) 评论(0) 推荐(0)
摘要:#include <stdio.h> class Test { int mi; int mj; bool mStatus; public: Test(int i, int j) : mStatus(false) { mi = i; return; mj = j; mStatus = true; } 阅读全文
posted @ 2021-07-01 17:18 wsq1219 阅读(54) 评论(0) 推荐(0)