C++学习笔记
记录C++ 学习过程
tomorrow778
不造轮子,怎么清楚原理
展开
-
ZLMediaKit_webrtc_datachannel配置
zlmediakit webrtc 的datachannel 环境配置原创 2022-10-18 09:47:30 · 950 阅读 · 2 评论 -
读书笔记<高速上手C11 14 17>
读书笔记原创 2022-09-03 16:20:07 · 371 阅读 · 0 评论 -
C++ 结构体 struct
struct原创 2022-02-16 23:15:20 · 330 阅读 · 0 评论 -
static关键字
static 关键字主要作用1.全局静态变量全局静态变量,内存会申请在静态存储区,在程序运行期间都在,本文件可见 staic int g_count = 0; int main(){ return 0; }2.局部静态变量局部静态变量,作用于为局部作用域,但是生命周期是存在整个程序运行期间,初始化语句只执行一次; int getCount(){ // 此语句只会执行一次 static int count = 0; return ++count; } int main(){原创 2021-10-17 00:11:50 · 103 阅读 · 0 评论 -
C++ 语言特性
C++ 作为面向对象语言,拥有封装继承多态三大特性封装1.封装实际上就是提供对外接口,隐藏内部的实现,2.拥有三种访问控制权限, privated protected public 3.默认的访问控制权限是private, 一般对数据成员都是私有的访问权限,提供公开的接口对其进行访问继承1.继承主要是对象之间的关系,子类可以继承父类的属性和方法,减少重复代码; 2.继承是多态的前提条件3.继承会增加类之间的耦合性虚继承解决在多层继承中数据冗余和命名冲突问题,使派生类中只保留一份间接基原创 2021-10-16 23:13:41 · 232 阅读 · 0 评论 -
函数模板->模板函数,函数指针->指针函数。。。我吐了
1.函数指针与指针函数1.1 函数指针参考链接:link程序中定义的函数,程序在编译时会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址,即函数指针;函数名就是一个指针,指向函数的代码,既可以作为函数调用,也可以作为参数传递(回调函数)// 定义一个函数实现int Max(int x, int y) //定义Max函数{ int z; if (x > y) { z = x; } else { z原创 2021-09-25 14:03:15 · 252 阅读 · 0 评论 -
一些 C++ 资源网站
1.API查询:1.cppreferencehttps://en.cppreference.com/w/cpp/algorithmhttp://www.cplusplus.com/2.代码规范:NGINX:http://openresty.org/cn/download.html3.C++ 项目:4.其他资源网站原创 2020-08-31 23:33:12 · 292 阅读 · 0 评论 -
C语言 ---可变参数
头文件:#include <stdarg.h>// 头文件支持需要自己添加 这里只是说明基本的使用方法基本使用方法double average(int num ...){ va_list valist; double sum = 0; va_start(valist,num); for(int i=0;i<num;++i) sum+=va_arg(valist,int); va_end(va_list) return sum/num;}头文件中的源码typed原创 2020-08-16 12:28:46 · 153 阅读 · 0 评论 -
C++ 内存分区
内存分段堆栈全局静态区常量文本区程序代码段堆:由程序员自己管理,需要自己释放,主要由malloc free new delete 管理 频繁的创建容易造成内存碎片化;栈:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时,这些存储单元被自动释放,栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量比较有限,window1Mb左右,linux8Mb左右,可以自己设置;全局静态区:全局变量哥静态变量被分配到同一块内存中;常量文本区:存放程序的字符常量,不原创 2020-07-30 16:48:18 · 244 阅读 · 0 评论 -
C++ 文件操作fstream -- filesystem遍历目录
文件打开方式ios::in // 读取的方式打开。如果文件不存在,则打开出错。ios::out // 写入的方式打开,文件不存在就新建一个,文件存在就清除所有内容ios::app // 以追加的方式打开文件 不存在 则新建ios::ate // 追加的方式打开文件 文件不存在则打开出错ios::trunc // 打开时清除所有数据iso::binary //二进制方式打开文件ios::nocreate: //不建立文件,所以文件不存在时打开失败ios::noreplac原创 2020-07-29 22:25:44 · 1429 阅读 · 1 评论 -
C++ 11新特性你都知道什么???
自动类型推导 autofor 范围循环初始化列表nullptr关键字tuple pair的升级版array forward_listenum class 强枚举static_cast()final10.override11.匿名函数原创 2020-07-18 17:03:48 · 229 阅读 · 0 评论 -
C++ 仿函数
container<T>(c).swap(c) // shrink_to_fit()container<T>().swap(c) // 去除所有内容和容量仿函数:仿函数(functor),就是使一个类的使用看上去像一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。C++仿函数template<class _Ty = void> struct minus { // functor for opera原创 2020-07-12 11:32:42 · 171 阅读 · 0 评论 -
线程同步-互斥锁和lock_guard 源码
/*这是一个简单的C++单例模式对mutex和lock_guard的使用代码*/static mutex* m_pMutex;static Singleton3* Singleton3::getInstance() { if (m_pInstance3 == nullptr) { std::lock_guard<std::mutex> lg(*m_pMutex); if (m_pInstance3 == nullptr) { m_pInstance3 = new Si原创 2020-06-28 18:02:25 · 359 阅读 · 0 评论