- 博客(43)
- 收藏
- 关注
原创 静态数组名与动态数组名区别分析(包括C/C++中的数据访问方式)
做题做着就发现不对劲了,查找资料分析了一下静态数组名和动态数组名的区别。找着找着顺道写了C/C++中的数据访问方式
2020-08-17 20:47:43 782 2
转载 C++ 虚函数表解析
转载自陈皓大佬的博客 C++ 虚函数表解析 陈皓 http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技
2020-12-21 12:59:42 236
转载 C++ 内存分配(new,operator new)详解
转载自:http://blog.csdn.net/wudaijun/article/details/9273339 本文主要讲述C++ new关键字和operator new, placement new之间的种种关联,new的底层实现,以及operator new的重载和一些在内存池,STL中的应用。 一. new operator 和 operator new new operator:指我们在C+
2020-12-20 15:22:07 814 1
原创 day8 C++中的多继承、虚继承、多态
C++中的多继承、虚继承、多态多继承虚继承的意义多态多继承多重继承可以使得子类拥有多个父类特性的成员,但多个重名函数可能会出现不必要的开销。考虑以下这种情况。多继承例子:#include <iostream>using namespace std;class M{public: M(int i) :_data(i){} int _data;};class X:public M{public: X(int d) :M(
2020-11-18 22:45:36 336
原创 I/O多路复用——试图了解select、poll、epoll
在前面一篇文章提到的[文本回射服务器](https://blog.csdn.net/qq_41589622/article/details/108652674),每新来一个客户都需要新建子进程,每次套接字来数据都需要切换进程,而且,系统对进程描述符是有限的,而且需要处理僵尸进程,捕捉信号。如何让一个进程处理多个套接字描述符,这个时候就需要IO复用技术。
2020-09-23 22:48:42 219
原创 mfs.h
慢慢构建自己常用到的函数,还还包括一些常用的宏定义与库头文件mfs.h#ifndef _MFS_H#define _MFS_H#include <string.h>#include <sys/types.h>#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <signal.h>#inclu
2020-09-23 22:43:33 146
原创 一个文本回射C/S程序并讨论:fork、信号处理机制、僵死进程处理
实例使用fork调用开发并发服务,讨论unix信号机制,僵尸进程的危害与处理,以及wait和waitpid函数的差别。
2020-09-17 22:19:04 397
原创 g++如何链接自己的头文件 解决对‘XXXX’未定义的引用报错
写了个自己的函数头文件mfs.h。在其他cpp中调用这个头文件里的函数,报错client.cpp:(.text+0x96):对‘writen(int, void const*, unsigned long)’未定义的引用client.cpp:(.text+0xb2):对‘readn(int, void*, unsigned long)’未定义的引用collect2: error: ld returned 1 exit status解决方法:这个问题是因为把mfs.h和...
2020-09-09 15:32:51 1719
原创 生成core文件方法
1、命令ulimit -a查看当前进程限制,命令ulimit -c 1024调整core file size大小为1024 当然也可以调整为unlimited.2、命令cat /proc/sys/kernel/core_uses_pid查看是否开启core文件调试,0为关闭,1开启,修改命令用 echo "1">/proc/sys/kernel/core_uses_pid3、查看core文件生成目录cat /home/filan/桌面/C++/core-%s-%e" > /proc/sys/
2020-09-04 18:09:26 458
原创 一个简单的时间获取C/S程序
最近在学习unix网络编程,从卷一开始看,跟着书,敲了下代码。在这里记录下遇到的问题。前言书中源码,采用了作者很多自己写的函数,都在udp.h这个文件里。直接调库的话,显得太业余,去读他的源码,对于刚开始的人来说也太难了吧。所以这里采用自己参考源码,微微修改的方式来学习。代码先贴上代码吧;我自己把需要的宏定义模仿作者放在另一个头文件中。mfs.h#include<string.h>#define MAXLINE 4096#define bzero(ptr ,n) memset(
2020-09-04 13:38:37 147
原创 linux 常用命令记录
ulimit -aulimit -a 用来显示当前的各种用户进程限制Linux对于每个用户,系统限制其最大进程数,为提高性能,可以根据设备资源情况,设置个Linux用户的最大进程数,一些需要设置为无限制:数据段长度:ulimit -d unlimited最大内存大小:ulimit -m unlimited堆栈大小:ulimit -s unlimited如下:core file size (blocks, -c) 0data seg size (kbyt
2020-09-04 11:58:37 209
原创 C++检测内存泄漏工具
CRT库头文件及宏定义:#define _CRTDBG_MAP_ALLOC#include<stdlib.h>#include<crtdbg.h>函数在需要检测的位置加上这个函数,那么就能检测目前为止没有释放的动态内存_CrtDumpMemoryLeaks();如:#define _CRTDBG_MAP_ALLOC#include<stdlib.h>#include <crtdbg.h>#include <iostream&g
2020-08-31 11:19:17 173
原创 深信服C/C++软件开发工程师实习 一面总结
这个暑假只投了深信服一家公司,感激HR捞我,但人生头次面试,面得稀里哗啦。明明很多问题都懂,面试却大脑空白,感觉应该在面试深信服之前在其他公司水一波经验。面试题重载与重写的区别重载指同名函数不同参数类型或者参数个数不同。重写指在派生类中对虚函数的重新实现。函数名参数,返回值都需要与基类一致。隐藏指子类有与父类同名的函数,(无需同参同返回)此时访问默认访问子类函数,隐藏了父类函数,如果使用需要显式写出父类作用域。struct与class的区别参考我的博客struct与class的区别忘记说了,
2020-08-28 01:16:38 1091 4
原创 编程题总结 链表问题常用解决方法
一文打尽链表问题。通过复习链表基本操作插入、删除、遍历;以及进阶问题:翻转链表、双指针,快慢指针、转换为路径问题 解决编程实例 链表分割,链式A+B 回文链表,链表相交、链表成环
2020-08-21 15:21:58 1880
原创 编程题总结 字符串问题常用解决方法
一文打尽字符串编程题:哈希法解决“确认字符互异” "确定两串乱序同构" ; 双指针“原串翻转”其他方法:空格替换,字符串压缩“翻转子串”
2020-08-14 17:03:31 852
原创 操作系统 信号机制
进程间通过信号机制实现软中断通信信号的基本概念信号与中断的相似点信号与中断的区别信号的功能信号的发送对信号的处理信号的基本概念每个信号都对应一个正整数常量(称为signal number,即信号编号。定义在系统头文件<signal.h>中),代表同一用户的诸进程之间传送事先约定的信息的类型,用于通知某进程发生了某异常事件。每个进程在运行时,都要通过信号机制来检查是否有信号到达。若有,便中断正在执行的程序,转向与该信号相对应的处理程序,以完成对该事件的处理;处理结束后再返回到原来的断点继续执
2020-08-13 15:27:08 957
原创 排序算法 C++如何实现快速排序
基本思路 身高排队为例:找一个人为基准,比他高的站右边,比他矮的站左边。 左边一队和右边一队,再重复以上操作,直到划分队伍剩下一个人即不需要排序的状态。
2020-08-11 15:33:59 318
原创 C++11 智能指针基本思路(非操作型博文)
以栈内存的特性,退出变量生命空间时,栈内存会自动释放,用栈内存来管理堆内存。细节:以一个类的形式管理创建指针,在析构函数delete指针。
2020-08-07 20:41:25 127
原创 排序算法 C++如何实现堆排序
堆排序基本思路1、理解堆的特点,父节点总是大于(在总是小于)孩子节点。父节点总是大于孩子节点的完全二叉树称为大根堆。父节点总是小于孩子节点的完全二叉树称为小根堆。2、每次把堆的最上面的值拿出来,再调整余下节点为新的堆。3、拿n-1次后则完成排序。
2020-08-07 02:13:24 195 1
原创 day7 C++继承与派生 权限控制 类的设计
C++继承中的权限控制与类设计作用继承的关系定性is ahas a语法继承示例继承方式补充说明派生类的构造基类成员初始化构造顺序与析构顺序继承中的赋值运算符重载shadow现象多继承虚继承
2020-08-01 00:54:12 453
原创 排序算法 C++如何实现归并排序
归并排序一般指2-路归并排序。基本思想如下:第一个问题:1、假设待排序列由两段有序的左右子序列拼接而成2、那么只需要一个额外空间当辅助空间,从左段和右段的第1开始比较,小的放到额外空间的低位。一直到两段排完第二个问题:1、如何让这两段序列有序?2、试想如果序列长度为2,那么可看成是左右两段有序子序列。3、那么只需要将长度为n的看成n个有序的子序列。4、每个子序列用第一个问题的思想两两拼接成一段长度为2的序列5、拼接好的序列再一次拼接,直到最后最后排完。
2020-07-30 23:09:37 327
原创 C++vector resize与reserve对比
resize使用方法示例一张图看明白发生了什么reserve一张图看明白发生了什么结论:知道了这个有什么用:
2020-07-28 19:30:45 416
原创 day6 深入运算符重载实战
简述基本规则,深入了解重载意义。重载(-> /*)实现auto_ptr以复数类为例重载重载+=重载输出运算符<<重载前++重载后++仿函数重载函数运算符"()"类间的重载总结
2020-07-26 00:34:24 108
原创 day5 C++ 类中的const static
day5 了解类中的const staticconst1、const修饰数据成员与类外部数据一致,即认为此数据成员不可改变。在参数列表(构造函数)位置初始化
2020-07-14 18:23:05 2477
原创 day2 C++学习之namespace的使用
命名空间提供了在大项目中避免名字冲突的一种方法。声明于命名空间块内的符号被放入一个具名的作用域中,避免这些符号被误认为其他作用域中的同名符号。允许具有相同名字的多个命名空间块。这些块中的所有声明声明于该具名作用域。
2020-06-01 17:41:17 111
原创 day2 C++中的类型强转
cpp中的类型强转隐式转换static_castreinterpret_castconst_cast要说的三个类型转换运算符其实都基于隐式转换。隐式转换static_castreinterpret_castconst_cast
2020-06-01 12:35:27 206
原创 day2 C++学习之宏函数/普通函数/内联函数分析
分析对比宏函数普通函数内联函数宏函数c语言中有宏函数的概念。宏函数的特点是内嵌到调用代码中去,避免了函数调用的开销。但是由于宏函数的处理发生在预处理阶段,缺失了语法检测和有可能带来的语意差错。1)使用方法:实例:SQR()求平方函数#define SQR(i) ((i)*(i))2)优缺点:优点:代码内嵌,避免函数调用花费的压栈出栈缺点:无类型检查,易产生歧义,由于代码直接内嵌可能造成text段体积变大普通函数优点:一段高度抽象的逻辑,不易产生歧义,有类型检查,text段小。缺点:
2020-06-01 00:22:32 254
原创 day2 C++之new delete与malloc free 区别比较
new delete/molloc free作用差别使用作用c语言中提供了malloc 和free 两个系统函数,完成对堆内存的申请和释放。而c++则 提供了两关键字 new 和 delete 。差别1)malloc free是系统函数,而new delete是关键字,系统函数必须包括头文件才能使用而关键字不用。2)new delete 能够兼容malloc free的功能,而且发展出新的功能,即对类对象的处理使用1)在前面的介绍我都是”malloc free“ /”new delete“两两
2020-06-01 00:01:33 144
原创 边界值法软件测试
在边界测试中,对于有n个输入变量的程序,基本边界值分析的测试用例个数为4n+1。(包括最小值,略高于最小值,正常值,略低于最大值,最大值)在健壮性测试中,对于有n个输入变量的程序,健壮性测试的测试用例个数为6n+1。(边界,刚刚大于边界,刚刚小于边界)题目:用边界值法和健壮边界值法对MS Office的word程序中,插入表格尺寸规格设置进行测试已知:Col变量取值范围为1~63Row变量取值范围为1~32767一般边界值测试用例:序号输入值预期结果实际结果1Col=3
2020-05-22 00:20:04 1671
原创 day1 C和C++有什么差异
C++学习随笔第一天:与C的不同使用C++的一点点应该记得的东西更为严谨的类型检查,不喜欢强转enum枚举表达式做左值函数重载倾轧变量读法引用重载运算符使用C++的一点点应该记得的东西C++之父给 C 程序员的建议
2020-05-18 23:26:02 171
原创 day1 总结C++ struct与class的区别
C++ struct与classstruct与class其实很多时候能够混用,但总觉得如果功能一样那也就没必要定义两个不同的关键字。所以做些总结。相同的地方C++的struct是对C的struct的扩充,它已经不再只是一个包含不同数据类型的数据结构了,class能做的struct大多也能做。如构造函数,(在刷到题的时候才发现的)下面这个例子的成员函数对ListNode进行了初始化。
2020-04-15 11:58:09 309
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人