
C++学习
文章平均质量分 76
昕昕向荣
这个作者很懒,什么都没留下…
展开
-
关于C++11 智能指针 的详细说明以及使用
由于C++没有像java那样的内存回收机制,我们在new一个资源的同时需要考虑其的delete,但是由于种种原因,忘记delete,程序异常退出没有执行到delete的代码等,都会导致内存泄漏,因此,我们引入了智能指针这种机制,它可以自动的为我们管理内存,无需我们考虑内存的释放问题。原理 智能指针实际上是栈上的一个对象,而非一个堆上的指针对象,在智能指针生命周期即将结束的时候,析构函...原创 2019-12-27 11:56:42 · 1144 阅读 · 1 评论 -
关于C++11 thread 的超详细介绍和使用
在windows上面启线程时,用的是windows的API,前辈说可以去学一下C++11 提供的线程库,比较方便灵活。下面就介绍一下thread的用法。std::thread::thread thread()noexcept; (1) (C++11 起) thread(thread&&other)noexcept; ...原创 2019-12-21 11:16:02 · 4081 阅读 · 0 评论 -
虚函数
我们在《C++继承的理解》中讲过在实现继承关系中成员方法的关系时覆盖的条件涉及到了一个以前未听过的概念——虚函数,那么今天我们就来详细介绍一下虚函数的定义,特例和应用。一、虚函数的定义 虚函数必须是基类的非静态成员函数,其访问权限可以是private或protected或public,在基类的类定义中定义虚函数的一般形式——在某基类中声名为virtual并在一个或多个派生类中重新定义...原创 2018-10-14 00:05:32 · 695 阅读 · 0 评论 -
C++继承的理解
一、类与类之间的三种关系 我们都知道类与类之间有三种关系,分别是:1.代理:一个类的端口集合是另一个类端口集合的子集例如:#include<iostream>using namespace std;class Arr{public: void insert_head(); void insert_tail(); void delete_head(...原创 2018-10-11 22:51:51 · 2261 阅读 · 0 评论 -
C++复习(C和C++的区别1)
函数的默认值参数C语言中没有带默认值的函数,C++支持带默认值的函数1.默认值的传入过程 在函数调用点,如果没有传递全部的实参,则会默认传递默认值作为实参。2.默认值的赋值 必须从右向左,依次赋值。 默认值只在本文件有效。 参数默认值在同一作用域下只允许赋值一次,给多次相同的默认值也不可以#include<iostream>using nam...原创 2018-10-23 22:35:03 · 574 阅读 · 0 评论 -
C++复习(C和C++的区别2)
空结构体C语言中,空结构体的大小为0;C++中,空结构体的大小为1new和delete #include<iostream>using namespace std;#include<assert.h>int main(){ int *q = new int(10); //指针q和指针p1是等价的 int *p1 = new ...原创 2018-10-24 20:20:19 · 163 阅读 · 0 评论 -
C++复习(面向对象1)
构造函数1.没有返回值2.构造函数可以重载3.调用没有参数的构造函数的时候,后面不可以加括号4.对象的生成绝对需要调用构造函数5.没有实现构造函数,编译器会生成一个空的构造函数6.一旦自己实现构造函数,编译器就不会再自己生成构造函数7.构造函数不允许手动调用class CStudent{private: char _name[20]; int _num;...原创 2018-11-04 14:56:16 · 161 阅读 · 0 评论 -
并行和并发,同步和异步的区别
老是忘记并发和并行,同步和异步之间的区别,今天写篇博客,加深印象。并发 & 并行 并发:当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。这种方式我们称之为并发(Concurrent)。并行:当系统有一个以上CPU时...原创 2018-12-08 01:17:17 · 5634 阅读 · 0 评论 -
string中的find函数
今天看代码,发现对STL中find函数掌握还是有点少,现在总结一下find函数的用法。 在非string类型的容器里,可以直接找出所对应的元素。find函数需要几个参数:迭代器、下标志、所要找的元素。 例如: vector<int> a; find(a.begin(),a.end(),1); 这句话就表示从a的头开始一直到尾,找到第一个值为1的...原创 2018-12-07 00:10:38 · 22081 阅读 · 4 评论