C++
文章平均质量分 90
于毒
这个作者很懒,什么都没留下…
展开
-
Visual Studio 2019 为 C++ 解决方案新建多个项目
实现一个解决方案下建立多个项目还能选择启动项原创 2022-08-16 09:47:18 · 2415 阅读 · 0 评论 -
《Windows 核心编程》第五版 第8章:用户方式中线程的同步
线程需要在两种情况下相互通信:原子访问指:线程在访问资源时,能确保所有其他线程都不在同一时间内访问相同的资源。【例】假设编译器将 g_x 递增1的代码为:解析描述:综上所述,无法预测运行结果是什么,但是可以通过原子操作的方式来保证线程安全。互锁函数提供了很多解决方案。调用这个函数,可传递一个长变量地址,并指明将这个值递增多少即可。这个函数能保证值的递增,以原子操作的方式来完成,可以吧上述代码改成:所有线程都应该保证变量在某一刻只能被一个操作修改,可通过调用这些函数来共享长变量,不能简单地操作共享的原创 2022-06-07 22:06:33 · 205 阅读 · 0 评论 -
《Windows 核心编程》第五版 第5章:作业
文章目录第5章 作业一些基本知识5.1 对作业进程的限制限制类型添加限制限制条件5.2 将进程放入作业5.3 终止作业中所有进程的运行5.4 查询作业统级信息5.5 作业通知信息通知信息包括得到通知信息分配的所有 CPU 时间是否已经到期整个作业何时运行结束获得更高级的通知信息:进程创建/终止运行等5.6 JobLab 实例应用程序第5章 作业作业能够将进程组合在一起,并且创建一个“沙框”,以便限制进程能够进行的操作可以把作业对象视为一个进程容器创建单个进程的作业,可以对该进程添加平时不能加的限制原创 2022-05-30 20:03:52 · 659 阅读 · 0 评论 -
《Effective C++》第三版 第六章 继承与面向对象设计 32~35条例
确定你的 public 继承塑膜出 is-a 关系Make sure public inheritance models “is-a.”故事引入规则在《Some Must Watch While Some Must Sleep》( W. H. Freeman and Company,1974)这本书中,作者William Dement说了一个故事,谈到他曾经试图让学生记下课程中最重要的一些教导。书上说,他告诉他的班级,一般英国学生对于发生在1066年的黑斯廷斯(Hastings) 战役所知不多。原创 2022-02-17 19:10:20 · 1137 阅读 · 2 评论 -
《Effective C++》第三版 第六章 继承与面向对象设计 36~40条例
条款32:确定你的 public 继承塑膜出 is-a 关系条款33:避免遮掩继承而来的名称条款34:区分接口继承和实现继承条款35:考虑 virtual 函数意外的其他选择条款36:绝不重新定义继承而来的 non-virtual 函数条款37:绝不重新定义继承而来的缺省参数值条款38:通过复合塑膜出 has-a 或 “根据某物实现出”条款39:明智而审慎地使用 private 继承条款40:明智而审慎地使用多重继承...原创 2022-01-25 01:42:54 · 988 阅读 · 0 评论 -
《Effective C++》第三版 第五章 实现
条款26:尽可能延后变量定义式的出现时间原因只要你定义了一个变量而其类型带有一个构造函数或析构函数,那么当程序控制流(control flow)到达这个变量定义式时,你边要承受构造成本,当这个变量离开其作用域时,你便承受析构成本。即使这个变量最终并未被使用,仍需消耗这些成本,所以应该避免这些情形。案例考虑以下函数://这个函数过早的定义变量 "encrypted"std::string encryptPassWord(const std::string& password){ usi原创 2022-01-18 18:02:23 · 1227 阅读 · 0 评论 -
《Effective C++》第三版 第四章 设计与声明
前言软件设计就是 “令软件做出你希望它做的事情” 的步骤和做法,允许开发特殊接口,这些接口最终必须转换为C++声明式。本章以最重要、最适合任何接口设计的一个准则作为开端:“让接口容易被正确使用,不容易被误用”。这个准则设立了一个舞台,让其他更专精的准则针对更大范围的设计,包括:正确性、高效性、封装性、维护性、延展性,以及协议一致性。以下条例强调的是某些最重要的考虑,对某些频繁出现的错误提出警告,为class、function 和 template 设计者经常遇到的问题找到解决方案。条款18:让接口容原创 2022-01-06 19:30:07 · 844 阅读 · 0 评论 -
《数据结构 C++语言描述》第一章 概述
一、概述我们把每种数据结构均视为抽象数据类型,它不但定义了数据的组织方式,还给出了处理数据的运算。C++语言中,用类来表示抽象数据类型,在具体应用中用对象来存储和处理数据。C++类的创建是我们学习数据结构的基础,继承性和多态性扩充了面向对象程序设计的能力,使其可以用于开发基于类库的大型软件系统。第一章主要是熟悉概念1.1 抽象数据类型(ADT)数据抽象被称为抽象数据类型,它定义了数据取值范围和表现结构,以及对数据的操作集。ADT 给出一种用户定义的数据类型,其运算符指明了用户如原创 2021-11-30 20:03:09 · 1619 阅读 · 0 评论 -
豹趣凉经
豹趣一面:自我介绍C++智能指针链表和数组内存管理项目计算量实现2D碰撞自动规划路径(建模)豹趣二面:自我介绍虚函数(多态)堆栈介绍项目遇到的问题(坑)深刻的技术问题(坑)实现2D(挂)...原创 2019-09-27 01:51:28 · 197 阅读 · 0 评论 -
华为二面
1. Final关键字 -2. Class和struct的区别 +class:类struct:结构体相同点:不同点:3. 不可继承的基类 -定义类时在类名后面加上finalclass NoDerived final { };4. 不可实现的类 -定义成抽象类含有 (或者未经覆盖直接继承)纯虚函数的类是抽象基类,抽象基类负责定义接口,而后续的其他类可以覆盖该接口不能定义一...原创 2019-09-27 01:49:15 · 1232 阅读 · 1 评论 -
剑指offer:理解约瑟夫环问题的数学解法(圆圈中最后剩下的数字)
问题描述题目:0,1,…,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字,求出这个圆圈里剩下的最后一个数字。例如,0,1,2,3,4,这五个数字组成一个圆圈,从0开始每次删除第3个数字,则删除的前四个数字依次为2、0、4、1最后剩下的数字是3解题思路这道题是有名的约瑟夫环(Josephuse)问题,解题一般有两种方法:用环形链表模拟圆圈的经典算法分析每次...原创 2019-04-01 02:53:51 · 453 阅读 · 0 评论 -
C++基础:(二)指针数组的区别
出现原因数组C++的数组类型为同类型对象的组织提供了一种有效的形式指针实现直接使用地址来访问内存功能 (C++从C继承来的一个重要特征)。应用指针,可以方便地处理连续存放的大量数据,以比较低的代价实现函数间的大量数据共享,灵活地实现动态内存分配。概念数组数组是具有一定顺序关系的若干对象的集合体,组成数组的对象称为该数组的元素。注意:1.数组元素的下标表达式可以是任意合法的...原创 2019-04-06 04:11:52 · 340 阅读 · 0 评论 -
C++基础:(三)枚举、结构体、联合体数据类型
C++自定义的数据类型:枚举类型、结构类型、联合类型、数组类型、类类型。枚举C++的enum提供了一种创建符号常量的方式,可以代替const!# 声明形式enum 枚举类型名字 {变量列表}for example:enum WeekDay{SUN, MON, TUE, WED, THU, FRI, SAT};定义WeekDay这个新类型名称,WeekDay被称为枚举SUM,MO...原创 2019-04-11 02:06:18 · 946 阅读 · 0 评论 -
C++基础:(一)面向对象的基本概念
《C++语言程序设计》对象:面向对象方法中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位。对象由一组属性和一组行为构成。类:面向对象方法中的“类”,是具有相同属性和服务的一组对象的集合。它为属于该类的全部对象提供了抽象的描述,其内部包括属性和行为两个主要部分。封装:封装是面向对象方法的一个重要原则,就是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象...原创 2019-04-01 23:32:00 · 448 阅读 · 0 评论 -
信息存储单位+常见数据类型
计算机内部信息的存储单位信息的单位通常采用“位”、“字”、“字节”位(bit):度量数据的最小单位,表示1位二进制信息字节(Byte):一个字节由8位二进制数字组成(1Byte=8bit)。字节是信息存储中最常见的基本单位。计算机的存储器(包括内存与外存)通常也是以多少字节来表示它的容量。常用的单位有:单位转换K字节 (KB)1K=1024BM(兆)字节 (...原创 2019-04-02 01:23:15 · 2036 阅读 · 0 评论 -
C++基础:(四) 函数基础
内联函数内联函数不是在调用时发送控制转移,而是在编译时将函数体嵌入在每一个调用处,节省了参数传递、控制转移等开销。内联函数应该是简单的函数,结构简单、语句少,复杂定义为内联会造成代码膨胀、开销↑Inline 类型说明符 函数名(含类型说明的形参表){语句序列}带默认形参值的函数函数在定义时可以预先声明默认的形参值,调用时如果给实参用实参,没给默认默认值形参必须在形参列表最...原创 2019-04-24 01:40:55 · 225 阅读 · 0 评论 -
模拟面试面经(一)
自己回答的部分省略,下面写的都是标准答案,还没写完,复习之后贴链接简历相关岗位:软件测试工程师熟悉语言:C++算法:排序,查找,贪心,动态规划数据结构:vector、链表、二叉树项目相关面试过程一、 自我介绍姓名+学校+专业+技术+简单项目二、 基础问题数组和指针的区别?我的回答:数组指定大小,指针可以扩容标准答案:待更新。。 C中的指针和数组:https://...原创 2019-04-06 00:48:46 · 3403 阅读 · 0 评论 -
win10 下 codeblock使用thread类需配置C++11遇到的问题
使用thread没配置前遇到的问题,根据提示在compiler中设置支持C++ 11C++11打勾,下面一个是C11。编译出现此错误,线程函数问题使用pthread定义:使用thread直接用 void makeString即可,无需返回值。使用pthread参考 https://www.runoob.com/cplusplus/cpp-multithreading.html...原创 2019-07-02 15:38:31 · 554 阅读 · 0 评论 -
C++:数据结构-链表创建
链表的概念就不多说了,上一次用Java实现了链表这次用C++,来对比一下区别。链表介绍及JAVA实现C++链表连接的理解说一下对C++这个链表指针的理解:p:移动的指针curr:新创建的结点(将要加到链表中)head:头结点(返回的结点)先用p保留头结点的地址,next指向新结点,再把p指向新节点最后让head指向自己的下一个结点,因为head当前是空的,尾结点p指向空借图理解...原创 2019-03-20 14:03:30 · 2367 阅读 · 0 评论