C++实战笔记
文章平均质量分 82
娱乐界祖师爷
这个作者很懒,什么都没留下…
展开
-
std::enable_shared_from_this用法
工厂函数:当使用工厂函数创建对象时,可能需要在工厂函数内部对对象进行一些初始化操作,而这些操作可能需要访问对象的成员变量或调用其他成员函数。回调函数:当一个类的成员函数被注册为回调函数,并且在回调函数中需要访问类的成员变量或调用其他成员函数时,可以使用。异步操作:在进行异步操作时,可能需要在回调函数或任务执行函数中访问对象的成员变量或调用其他成员函数。的使用场景包括回调函数、异步操作和工厂函数等情况,其中需要在类的成员函数中获取指向自身的。的主要使用场景是在需要在类的成员函数中获取指向自身的。原创 2023-11-12 20:40:58 · 332 阅读 · 0 评论 -
C++实战笔记(六)
迭代器容器一般会提供成员函数begin()/end()/cbegin()/cend().调用它们就可以得到表示两个端点的迭代器,有"c"前缀的函数返回的是常量迭代器,但具体类型最好用自动类型推导:vector<int> v = {1, 2, 3, 4, 5};anto iter1 = v.begin();auto iter2 = v.end();//全局函数,效果一样auto iter3 = std::begin(v);auto iter3 = std::end(v);原创 2022-03-06 15:24:27 · 1170 阅读 · 0 评论 -
C++实战笔记(五)
标准容器C++容器分类:顺序容器,有序容器,无序容器。所有的容器都有一个基本的特性:容器保存元素采用的是值语义,也就是说,里面存储的是元素的副本、复件,而不是引用。从这个基本的特性可以得出一个推论,容器操作元素的很大一块成本就是值的复制。所以,如果元素比较大, 或者非常多,那么操作时的复制成本就会很高,性能也就不会太好。一种解决办法就是尽量为元素实现转移构造函数和转移赋值函数,在加入容器的时候使用std::move来转移元素,降低元素复制的成本。例如:Point p; //复制成本很高原创 2022-02-28 22:29:19 · 1139 阅读 · 0 评论 -
C++实战笔记(四)
智能指针unique_ptrunique_ptr是最简单、最容易使用的智能指针之一,在声明的时候必须用模板参数指定类型,例如:unique_ptr<int> ptr1(new int(10)); //int智能指针assert(*ptr1 = 10); // 使用*获取内容assert(ptr1 != nullptr); //可以判断是否为空指针unique_ptr<string> ptr2(new string("hello")); //string智能指原创 2022-02-23 23:07:17 · 567 阅读 · 0 评论 -
C++实战笔记(三)
const/volatile关键字const表示常量,较简单的用法就是定义程序的数字、字符串常量、代替宏定义等,例如const int MAX_LEN = 1024;const std::string NAME = "meto";从C++程序生命周期的角度来看,我们就会发现它和宏定义还是本质区别的:const定义的常量在预处理阶段并不存在,直到运行阶段才出现。它叫只读变量更合适。既然它是变量,那么使用指针获取地址,再强制写入也是可以的,但这种做法破坏了常量性,绝对不提倡。下面一个原创 2022-02-18 00:50:26 · 744 阅读 · 0 评论 -
C++实战笔记(二)
final标识符C++11新增final标识符,把final用于类定义,就可以显示地禁用继承,防止有人有意或者无意创建派生类,这个标识符无论对人还是编译器,效果都很好,建议积极使用。例如:class DemoClass final //禁止任何人继承{...}final也可以用于虚函数,禁止这个虚函数再被子类重载,这样就可以更精细地控制继承类的使用:class Interface //接口类定义,没有final,可以被继承{ virtual void f() = 0;原创 2022-02-09 22:02:48 · 728 阅读 · 0 评论 -
C++实战笔记(一)
命名规范:变量、函数名和命名空间用snake_case,全局变量加"g_"前缀 自定义类名用CamelCase风格,成员函数用snake_case,成员变量加"m_"前缀。 宏和常量应当全大写,单词之间用下划线连接 尽量不要将下划线作为变量的前缀或后缀,很难识别CamelCase:驼峰命名法,分为大驼峰,小驼峰。区别为首字符是否要大小写。snake_case:用的全是小写,单词之间用下划线连接。#define MAX_PATH_LEN 256 //常量全大写int g_sys原创 2022-01-20 00:59:40 · 964 阅读 · 0 评论