自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 QkeyTools软键盘

QT全键盘

2022-11-30 15:07:36 174 1

转载 (转)构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数

构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数。不建议在构造函数和析构函数里面调用虚函数。构造函数不能声明为虚函数的原因是:1 构造一个对象的时候,必须知道对象的实际类型,而虚函数行为是在运行期间确定实际类型的。而在构造一个对象时,由于对象还未构造成功。编译器无法知道对象 的实际类型,是该类本身,还是该类的一个派生类,或是更深层次的派生类。无法确定。。。2 ...

2019-04-28 20:01:39 383

转载 Effective C++ 2e 条款7:预先准备好内存不够的情况

条款7:预先准备好内存不够的情况  operator new在无法完成内存分配请求时会抛出异常(以前的做法一般是返回0,一些旧一点的编译器还这么做。你愿意的话也可以把你的编译器设置成这样。关于这个话题我将推迟到本条款的结尾处讨论)。大家都知道,处理内存不够所产生的异常真可以算得上是个道德上的行为,但实际做起来又会象刀架在脖子上那样痛苦。所以,你有时会不去管它,也许一直没去管它。但你心里一定还是深...

2019-04-02 16:46:43 342

原创 插入排序

在算法导论中的模板:(升序)for j=2 to A.length key = A[j] i = j - 1 while i>0 and A[i]>key A[i+1] = A[i] i = i - 1 A[j+1] = key 然后,在C++里试了下:#include<iostream>...

2019-03-22 16:23:33 117

转载 (转载)传指针和传指针引用的区别/指针和引用的区别(本质)

传指针和传指针引用的区别/指针和引用的区别(本质)转自:http://blog.sina.com.cn/s/blog_673ef8130100imsp.html指针传递参数本质上是值传递的方式,它所传递的是一个地址值。值传递过程中,被调函数的形式参数作为被调函数的局部变量处理,即在栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而成为了实参的一个副本。值传递的特点是被调函数对形...

2019-03-22 15:19:16 139

转载 (转载)C++中栈区 堆区 常量区(由一道面试题目而学习)

C++中栈区 堆区 常量区(由一道面试题目而学习)2009-04-28 21:01 #include<iostream.h>void main(){char a[]="abc";栈 char b[]="abc";栈 char* c="abc";abc在常量区,c在栈上。char* d="abc"; 编译器可能会将它与c所指向的"abc"优化成一个地方。cons...

2019-03-21 00:01:47 146

转载 Centos7通过yum安装最新MySQL(亲测有效)

一:去官网查看最新安装包https://dev.mysql.com/downloads/repo/yum/二:下载MySQL源安装包wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm安装MySql源yum -y install mysql57-community-release-...

2019-03-19 16:58:27 5256

转载 new 和 malloc 的区别

大概整合了下,有以下几个方面:一、属性 new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。二、参数 使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸。三、返回类型 new操作符内存分配成功时,返回的是对象类型的指...

2019-03-03 21:34:35 120

转载 C++ 面向对象基本概念

/* 类和对象 */1. 对象客观世界中任何一个事物都可以看成一个对象(object)。对象可大可小。对象是构成系统的基本单位。任 何 一 个 对 象 都 应 当 具 有 这 两 个 要 素 , 即 属 性 (attribute) 和 行 为(behavior),它能根据外界给的信息进行相应的操作。2. 封装与信息隐蔽可以对一个对象进行封装处理,把它...

2019-03-03 18:19:32 929

转载 _Effective_C++_条款四十九:了解new_handler的行为(转载)

转载自https://www.cnblogs.com/jerry19880126/p/3722531.html读书笔记_Effective_C++_条款四十九:了解new_handler的行为本章开始讨论内存分配的一些用法,C/C++内存分配采用new和delete。在new申请内存时,可能会遇到的一种情况就是,内存不够了,这时候会抛出out of memory的异常。有的时候,我们希望能...

2019-02-02 16:46:04 127

原创 高性能服务器(基于TCP实现基本的加减乘除等运算)

calc.h#include&lt;stdio.h&gt;#include&lt;unistd.h&gt;#include&lt;sys/socket.h&gt;#include&lt;netinet/in.h&gt;#include&lt;arpa/inet.h&gt;typedef enum {QUIT, ADD, SUB, MUL, DIV, MODE}ENUM_CAL_T...

2019-01-23 21:56:08 1371

原创 SOCKET----TCP & UDP

关于TCP,UDP这块其实就是下面这几个步骤:(左边的是服务器的,右边是客户端的)务必注意两者的区别!!TCP:utili.h#include&lt;stdio.h&gt;#include&lt;unistd.h&gt;#include&lt;sys/socket.h&gt;#include&lt;string.h&gt;#include&lt;stdlib.h&gt;...

2019-01-23 21:02:07 124

原创 进程间通信-----读写锁

pthread_rwlock.h书上的源码是pthread, 但实际上应用时要改成别的名字,为了防止跟系统冲突比如 my_pthread: #pragma once#include&lt;stdlib.h&gt;#include&lt;unistd.h&gt;#define EINVAL -1#define EBUSY -2typedef struct { pt...

2019-01-23 19:59:16 255

原创 Linux之共享内存shm

shm.h #include&lt;stdio.h&gt;#include&lt;unistd.h&gt;#include&lt;stdlib.h&gt;#include&lt;sys/ipc.h&gt;#include&lt;sys/sem.h&gt;#include&lt;sys/shm.h&gt;union semun{ int val; str...

2019-01-17 22:04:51 597

原创 Linux 之 System V信号量

其实就是学几个函数的用法:ftok(),  semget() , semctl(),  semop()   如果对哪个函数不熟悉就man 一下,例如man semctl()下面是几个函数简单的实现代码,自己可以实现一下,助于理解...sem.h:对相应的系统函数”包装“,便于使用,例如Ftok()对应于系统里的ftok();//////sem.h#include&lt;st...

2018-11-30 20:20:09 326

原创 Linux进程间通信之有名管道和无名管道

(无名)管道pipe有以下几个注意的:1.管道只能两个进程单向通信,数据只能从一个进程流向另一个进程(其中管道一端用写数据,另一端读)即半双工管道;2.只能用于有亲缘关系的进程间;3.是通过创建管道时,系统设置的文件描述符进行的。管道就是一个特殊的文件,这个文件只存在于内存中。在创建管道时系统会为管道分配一个页面作为数据缓冲区,进行管道通信的两个进程通过读写这个缓冲区来进行...

2018-11-13 16:53:38 561

原创 Linux中wait()函数

 编程过程中,有时需要让一个进程等待另一个进程,最常见的是父进程等待自己的子进程,或者父进程回收自己的子进程资源包括僵尸进程。这里简单介绍一下系统调用函数:wait()函数原型是#include &lt;sys/types.h&gt;#include &lt;wait.h&gt;int wait(int *status)函数功能是:父进程一旦调用了wait就立即阻塞自己,由...

2018-11-10 22:50:53 64575 6

转载 (转载)Linux下getopt()函数的使用

Linux下getopt()函数的简单使用步入正题:我们的主角----getopt()函数。英雄不问出处,getopt()函数的出处就是unistd.h头文件(哈哈),写代码的时候千万不要忘记把他老人家include上。 再来看一下这家伙的原型(不是六耳猕猴):int getopt(int argc,char * const argv[ ],const char * opt...

2018-11-01 20:49:34 118

原创 CentOS7网络源配置yum

以下步骤均得保证你的系统能连外网:即 ping www.baidu.com 能出现回复第一步:下载yum源配置文件下载地址:http://mirrors.163.com/.help/CentOS7-Base-163.repo即 cd /etc/yum.repos.d然后 wget http://mirrors.163.com/.help/CentO...

2018-10-29 18:46:59 1930

转载 (转载)C++中基类的析构函数为什么要用virtual虚析构函数

  知识背景         要弄明白这个问题,首先要了解下C++中的动态绑定。          关于动态绑定的讲解,请参阅:  C++中的动态类型与动态绑定、虚函数、多态实现正题         直接的讲,C++中基类采用virtual虚析构函数是为了防止内存泄漏。具体地说,如果派生类中申请了内存空间,并在其析构函数中对这些内存空间进行释放。假设基类中采用的是非虚析构函...

2018-10-29 17:55:56 113

原创 vector/string以及范围for循环

#include &lt;iostream&gt;#include &lt;vector&gt;//必须包含vector的头文件;就如当用到string时也应该有#include&lt;string&gt;一样;using namespace std;int main(){ vector&lt;int&gt; v = { 0,1,2,3,4,5,6,7,8,9 }; for (aut...

2018-02-02 20:15:49 1696

原创 求10个数平均值(数组)

#include &lt;iostream&gt;using namespace std;int main(){ float average(float array[]); float a[10], m; cout&lt;&lt;"please enter 10 numbers:"&lt;&lt;endl; for(int i = 0; i &lt; ...

2018-01-22 22:04:07 10923

原创 数组元素倒置(指针做参数,数组名做参数)

数组元素倒置废话不多说,直接看代码:1.指针做参数#include &lt;stdio.h&gt;int main(){ void inv(int *x,int n);//函数声明 int i; int a[10]={3,4,8,15,78,46,25,12,18,16}; printf("The original array:\n"...

2018-01-20 12:56:20 3398

原创 初学指针(输入两个整数,由大到小输出)

#include &lt;iostream&gt;using namespace std;int main(){ void Swap(int *p1, int *p2); int a, b; cout&lt;&lt;"please enter a and b"&lt;&lt;endl; cin&gt;&gt;a&gt;&gt;b; int *...

2017-12-08 09:32:07 4964 2

原创 9*9乘法表

#include &lt;iostream&gt;using namespace std;void main(){ for(int i = 1; i &lt; 10; ++i) { for(int j=1;j&lt;=i;++j) { cout &lt;&lt; j &lt;&lt; "*"&lt;&lt; i &lt;&l

2017-12-02 13:25:07 201

原创 数组排序

#include &lt;iostream&gt;using namespace std;void Sort(int ar[], int n){ for(int i = 0; i &lt; n-1; ++i) { for(int j = 0; j &lt; n-i-1; ++j) { if(ar[j] &lt; ar[j+1]) { int tmp = ...

2017-12-02 11:43:41 190

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除