随笔分类 - c++重构
摘要:常量引用不同于指针的地方 加上Mutable后,const成员函数可以修改成员变量的值
阅读全文
摘要:自动进行一次隐式转换 如果在构造函数前加上explicit 转换就会失败 此时就需要显示转换
阅读全文
摘要:1.原始字面量 对于有反斜杠的,避免转义 写windows路径的时候写两个\\,在Linux中没问题 C++11: 2.指针空值类型 nullptr nullptr就是为c++量身定做的空指针类型,可以自动转换(隐式匹配)为其它类型的指针。NULL就是0 3.constexpr 常量表达式的编译往往
阅读全文
摘要:c++中类所占的大小计算并没有想象中那么简单,因为涉及到虚函数成员,静态成员,虚继承,多继承以及空类等,不同情况有对应的计算方式,在此对各种情况进行总结。 首先要明确一个概念,平时所声明的类只是一种类型定义,它本身是没有大小可言的。 我们这里指的类的大小,其实指的是类的对象所占的大小。因此,如果用s
阅读全文
摘要:友元函数是个函数,通过声明为某个类的友元函数,他可以访问这个类的所有成员变量
阅读全文
摘要:加上override重写 虚函数要结合指针使用,不要用对象来使用 多态性 关于虚函数表指针和虚函数表的实现机制 凡是声明有虚函数的类,其对象都含有一个隐藏的data member,用来指向该class 的vtbl。这个隐藏的data member就是vptr(virtual table Pointe
阅读全文
摘要:对于*pai=120这种方式属于未定义行为,尽量不要这么干(因为原来是一个常量)
阅读全文
摘要:左值引用,就是绑定到左值的引用,通过&来获得左值引用。那么,什么是左值呢?左值,就是在内存有确定存储地址、有变量名,表达式结束依然存在的值。 std::move 可以把左值转换成右值,没有移动能力 string里的移动构造函数清空st
阅读全文
摘要:后置返回类型 内联函数 内联函数需要的是函数本体 优缺点:代码量应该尽量的少,避免代码膨胀 constexpr函数也可以看成是更严格的一种内联函数 这样可以吗?
阅读全文
摘要:Human *phuman = new Men; phuman->funcmen();//虽然new子类对象,但是你是父类指针无法调用子类成员函数 父类指针可以指向子类,发过来不行 在父类中加了虚函数后 Human *phuman = new Men; phuman->eat(); //此时调用的是
阅读全文
摘要:在linux下写一个可执行程序,然后进行反编译 查找main函数入口地址 找到start start函数准备好参数之后立即调用 libc_start_main libc_start_main做了些什么? 当可执行性程序中的所有段被加载到内存中后,PC指针就指向代码段起始地址,进而执行指令 查找一下这
阅读全文
摘要:#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; }
阅读全文
浙公网安备 33010602011771号