随笔分类 - C/C++
摘要:11.4.9 c++默认生成副本构造函数,但是有指针时会造成一个内存被两个指针同时指向的问题。 Box::Box(Box box){} 这个实参时按值传递。它是个Box对象,所以编译器需要调用 Box的副本构造函数,制作这个副本。而这个副本构造函数又是按值传递的,又需要再次调用副本构造函数,造成递归
阅读全文
摘要:对于一个函数的参数为引用,如果想接收临时变量,就必须加上 const。 class A{ public: A(int aa) {} }; void f(A& a) { }; int main(int argc, char* avgv[]) { f(A(5));//报错:必须为左值 return 0;
阅读全文
摘要:硬核来袭 | 2 万字 + 10 图带你手撕 STL 关联式容器源码 (7 条消息) herongwei - 知乎 (zhihu.com) STL 源码剖析 再硬核|5 千字长文+ 30 张图解 | 陪你手撕 STL 空间配置器源码 硬核|万字长文炸裂!手撕 STL 迭代器源码与 traits
阅读全文
摘要:转自:C++干货系列 - 知乎 (zhihu.com) C++17的左值和右值 | RuiBing, welcomes you to his home page. 讲得也不错 [c++11]我理解的右值引用、移动语义和完美转发 - 简书 (jianshu.com) 我希望在讲述一个知识点时,能够从容
阅读全文
摘要:对于char型,它所表示的范围为-128~+127,假设有如下语句: char data[3] = {0xab, 0xcd, 0xef}; 初始化之后想打印出来,cout << data[0] << data[1] << data[2]; 发现都是乱码,没有按十六进制输出。 在ASCII中,一共定义
阅读全文
摘要:用atomic #include <atomic> #include <iostream> int getNextSerial() { static std::atomic<uint64_t> i; return i++; } int main() { for (int a = 0; a < 34;
阅读全文
摘要:#1 基类:相对的。某个类可能既是基类(base)又是派生类(derived)。 要知道这个原则:基类可以保存派生类地址,比如 CerealPack breakfast; //派生类 Carton* pCarton {&breakfast};//直接基类保存了派生类 Box* pBox {&brea
阅读全文
摘要:类的初始化, 构造函数 尤其对于java转过来的
阅读全文
摘要:原文:图说C++对象模型:对象内存布局详解 C++干货系列——谈谈C++中的动与静 - 知乎 (zhihu.com) 这篇讲得也很透彻 0.前言 文章较长,而且内容相对来说比较枯燥,希望对C++对象的内存布局、虚表指针、虚基类指针等有深入了解的朋友可以慢慢看。本文的结论都在VS2013上得到验证。不
阅读全文
摘要:原文:C++对象模型之RTTI的实现原理 RTTI是Runtime Type Identification的缩写,意思是运行时类型识别。C++引入这个机制是为了让程序在运行时能根据基类的指针或引用来获得该指针或引用所指的对象的实际类型。但是现在RTTI的类型识别已经不限于此了,它还能通过typeid
阅读全文
摘要:原文:C++ static_cast、dynamic_cast、const_cast和reinterpret_cast(四种类型转换运算符) < C/C++类型转换的本质(经典之作)输入输出流 > 上节讲到,隐式类型转换是安全的,显式类型转换是有风险的,C语言之所以增加强制类型转换的语法,就是为了强
阅读全文
摘要:转自: 用户体验第一的现代C++ JSON库 话不多说,先上code! // 最简单的方式创建一个json对象 json obj = { { "null", nullptr }, { "number", 1 }, { "float", 1.3 }, { "boolean", false }, { "
阅读全文
摘要:C++ 单例模式的模板实现 单例模式是一种创建型的设计模式(creational design patterns),使用单例模式进行设计的类在程序中只拥有一个实例(single instance),这个类称为单例类,它会提供一个全局的访问入口(global access point),关于单例模式的
阅读全文
摘要:#include <iostream> #include <sstream> #include <string> class CMyStream { public: typedef void (CMyStream::* EndlCallback)(); CMyStream& operator<<(E
阅读全文
摘要:读文件 #include <fstream> #include <iostream> #include <random> #include <sstream> #include <string> std::ifstream inFile("d:\\bigfile.txt"); std::string
阅读全文
摘要:切换release /debug版本:
阅读全文
摘要:1,C风格字符串一般以char* 或 char str[]表示,字符串以'\0'结尾 2,sizeof()获得给定数据类型或变量的内存大小,strlen()获得字符串长度 3,字符串字面量 char* arr = "hello"; arr[1] = 'b'; // 未定义行为,非法 char arr
阅读全文
摘要:c++函数式编程:https://blog.csdn.net/richenyunqi/article/details/89530589 转自:https://blog.csdn.net/m0_43383220/category_10485824.html 1 模板参数推导 1.1,C++17可对类模
阅读全文
摘要:C++17剖析:string在Modern C++中的实现 2019-01-26 19:17 猴子顶呱呱 阅读(388) 评论(0) 编辑 收藏 概述 GCC 8.2提供了两个版本的std::string:一个是基于Copy On Write的,另一个直接字符串拷贝的。前者针对C++11以前的,那时
阅读全文