![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
人宅硬核C++
文章平均质量分 65
这个专栏是记录跟着人宅老师学习硬核C++的
whitenpc
这个作者很懒,什么都没留下…
展开
-
C++信号
首先什么是信号(signal),基本可以理解成改变程序流程的一个东西信号是一种软件中断,一种向进程传递有关其他进程,操作系统和硬件状态的信息的方法。信号是一种中断,因为它可以改变程序的流程。当信号传递给进程时,进程将停止其执行的操作,处理或忽略信号,或者在某些情况下终止,取决于信号。几种常用信号SIGINT 2 表示信号中断的意思SIGILL 4主要用于检测非法指令SIGSEGV 11表示非法访问内存SIGTERM 15 表示发送到程序的终止请求SIGBREAK 21 表示原创 2022-05-27 10:08:52 · 782 阅读 · 0 评论 -
C++STL
STL主要包括这三个部分然后第一节这边就简单教了一下通过迭代器来遍历输出数的两种方法,一个while,一个forwhile (v != array1.end()) { cout << *v << endl; v++; } /*打印*/ for (vector<int>::iterator It = array1.begin(); It != array1.end(); It++) { cout << *v <&原创 2022-05-21 18:44:38 · 534 阅读 · 0 评论 -
预分配和多维内存
堆和栈堆区内容需要手动释放,栈区不能手动释放。释放的化,会报错。malloc和new的区别1.new会自动分配空间,malloc需要手动分配空间且返回类型是void*需要自己区修改2.new,delete会调用析构构造函数,mallocfree不会3.new是从自由存储区获得内存,malloc从堆中获取内存;构造函数不能用virtual来写,析构可以加virtual,然后在析构的时候就会走子类析构。如果是指针指向一个一维数组,delete []p,得加个括号如果是个二维数组,原创 2022-05-20 18:24:58 · 285 阅读 · 0 评论 -
C++IO风格输入输出流
有这三个输出的写法,cout,clog,cerr这三个。cout可以直接输出到磁盘里clog和cerr的差别在于,cerr是直接输出的,clog还会进行缓存。读写文件创建并写入文件 char buffer[1024]; ofstream file; file.open("ok.txt",ios::app);//这边这个ios::app是表示追加的意思,如果还要添加内容追加到后面 cout << "开始写入信息" << endl; cin.getli原创 2022-05-19 12:18:47 · 275 阅读 · 0 评论 -
git架构
因为要上高级宏替换和类模板设计收发协议框架这节课的前置得学git架构,先来学一下git架构在git bash的几个指令git init对文件进行初始化,git status对文件进行状态检测,git add 文件名 表示的是对某一文件夹进行控制,其他文件先不控制。(被控制的文件会呈现绿色,未被控制呈现红色),如果想把所有的文件都管理起来,则是git add.。因为是版本控制器最后肯定要生成一个版本,生成版本的写法是git commit -m'版本名'(这个时候如果第一次使用git可能会出现这样的问.原创 2022-05-08 21:10:39 · 377 阅读 · 0 评论 -
模板高级运用
结合着继承,这边加了个模板。模板是支持虚函数,指出多态的。跟普通虚继承调用没有什么太多的差别,多了一步前面补上一个类型然后和正常一样,创建基类指针指向派生类的对象或者新开辟的空间。template<typename T>class A {public: virtual void test() { cout << "1"; } T *p;};template<typename T>class B :public A<int>{pu原创 2022-05-06 21:20:03 · 415 阅读 · 0 评论