自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 UML常用图的几种关系的总结

在UML的类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency)1.       泛化(Generalization)【泛化关系】:是一种继承关系, 表示一般与特殊的关系, 它指定了子类如何特化父

2017-04-22 11:15:59 279

转载 C++ typedef typename 作用

C++的一些语法让人看着费解,其中就有:typedef typename std::vector::size_type size_type;11详见《C++ Primer》(第五版)P584 有些不懂的语法有时候虽然知道大概是什么意思,忽略一下就过了其实,不过心里老是膈应,就刨根问底一次吧。vector::size_type明白上述语法,首先要先看清vector::size

2017-04-20 23:10:55 267

转载 什么是左值和右值

第一次让左值右值引起我注意的时候是在刚接触字符串和指针的时候编译器对代码的一段错误提示那什么是左值(l-value)那:说的通俗一点就是可以放在赋值号左边的叫左值 就是可以被赋值的。是一个地址左值一般是是一个变量可以被赋值的变量。(const变量是一个例外只能做右值)那什么是右值(r-value)那:同样我们可以说是可以放在赋值号右边的 就是可以给其他变量赋值的,它可以是一

2017-04-20 17:03:40 3004 2

转载 strcpy_s与strcpy的比较

strcpy_s和strcpy()函数的功能几乎是一样的。strcpy函数,就象gets函数一样,它没有方法来保证有效的缓冲区尺寸,所以它只能假定缓冲足够大来容纳要拷贝的字符串。在程序运行时,这将导致不可预料的行为。用strcpy_s就可以避免这些不可预料的行为。这个函数用两个参数、三个参数都可以,只要可以保证缓冲区大小。三个参数时:errno_t strcpy_s(char *s

2017-04-18 20:14:36 2909

转载 什么是C++虚函数、虚函数的作用和使用方法

我们知道,在同一类中是不能定义两个名字相同、参数个数和类型都相同的函数的,否则就是“重复定义”。但是在类的继承层次结构中,在不同的层次中可以出现名字相同、参数个数和类型都相同而功能不同的函数。例如在例12.1(具体代码请查看:C++多态性的一个典型例子)程序中,在Circle类中定义了 area函数,在Circle类的派生类Cylinder中也定义了一个area函数。这两个函数不仅名字相同,而且参

2017-04-18 14:50:01 662

转载 static_cast、const_cast用法

static_cast 用法用法static_cast ( expression )11说明:该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。来源:为什么需要static_cast强制转换?情况1:void指针->其他类型指针情况2:改变通常的标准转换情况3:避免出现可能多种转换的歧义它主要有如下几种用法: •用于类

2017-04-18 14:40:38 547

转载 总结const的用法

1. const的用法:(1)定义常量(2)修饰函数的参数(3)修饰函数的返回值(4)修饰函数的定义体2. 用const 修饰函数的参数(1)const 只能修饰输入参数如果输入参数采用“指针传递”,那么加const 修饰可以防止意外地改动该指针。    例如:void StringCopy(char *strDestination, const c

2017-04-18 14:18:15 304

转载 C++构造函数初始化列表与赋值

C++类中成员变量的初始化有两种方式:         构造函数初始化列表和构造函数体内赋值。下面看看两种方式有何不同。         成员变量初始化的顺序是按照在那种定义的顺序。1 内部数据类型(char,int……指针等)class Animal{public: Animal(int weight,int height): //A初始化列表

2017-04-18 11:21:41 503

转载 c++ assert() 使用方法

assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:#inclu

2017-04-17 23:46:37 279

转载 STL源码:list

相较于vector的连续线性空间,list就显得复杂许多,它的好处是每次插入或删除一个元素,就配置或释放一个元素空间。因此,list对于空间的运用有绝对的精准,一点也不浪费。而且,对于任何位置的元素插入或元素移除,list永远是常数时间。      list不仅是一个双向链表,而且还是一个环状双向链表,因此迭代器必须具备前移和后移能力,所以list使用Bidirectional Iterato

2017-04-17 23:38:39 244

转载 c++中vector的用法详解

vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.     用法:          1.文件包含:                首先在程序开头处加上#include以包含所需要的类文件vector          还有一定要加上using name

2017-04-17 23:05:08 229

转载 BigInteger简单使用及方法总结

BigInteger 可以用来解决数据的溢出问题!下面我总结几种关于BigInteger的常用用法:1。probablePrime和nextprobablePrime。(判断质数,并返回)  BigInteger.probablePrime(int x);  返回有可能是素数(质数),具有指定长度的正数BigInteger,返回可能是合数的概率不超过2的负100次方

2017-04-10 20:17:24 6735

转载 Java创建线程的两个方法

Java提供了线程类Thread来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。每个Thread对象描述了一个单独的线程。要产生一个线程,有两种方法:◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法; ◆实现Runnalbe接口,重载Runnalbe接口中的run()方法。 为

2017-04-09 16:05:28 402

转载 Java中堆内存和栈内存详解

Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。

2017-04-09 15:57:53 134

转载 Java中匿名类的两种实现方式

使用匿名内部类课使代码更加简洁、紧凑,模块化程度更高。内部类能够访问外部内的一切成员变量和方法,包括私有的,而实现接口或继承类做不到。然而这个不是我说的重点,我说的很简单,就是匿名内部类的两种实现方式:第一种,继承一个类,重写其方法;第二种,实现一个接口(可以是多个),实现其方法。下面通过代码来说明:[java] view plain copy print?pu

2017-04-09 15:51:13 248

转载 如何写一个不可变类?

不可变的对象指的是一旦创建之后,它的状态就不能改变。String类就是个不可变类,它的对象一旦创建之后,值就不能被改变了。阅读更多: 为什么String类是不可变的不可变对象对于缓存是非常好的选择,因为你不需要担心它的值会被更改。不可变类的另外一个好处是它自身是线程安全的,你不需要考虑多线程环境下的线程安全问题。阅读更多: Java线程教程以及Java多线程面试问题下面是创建不

2017-04-09 15:41:30 303

转载 为什么String类是不可变的?

String是所有语言中最常用的一个类。我们知道在Java中,String是不可变的、final的。Java在运行时也保存了一个字符串池(String pool),这使得String成为了一个特别的类。String类不可变性的好处只有当字符串是不可变的,字符串池才有可能实现。字符串池的实现可以在运行时节约很多heap空间,因为不同的字符串变量都指向池中的同一个字符串。但如果字符串是可变

2017-04-09 15:36:47 188

转载 深入理解Java中的final关键字

Java中的final关键字非常重要,它可以应用于类、方法以及变量。这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例。final经常和static一起使用来声明常量,你也会看到final是如何改善应用性能的。final关键字的含义?final在Java中是一个保留的关键字,可以声明成

2017-04-09 15:34:09 148

转载 c++ 中 char 与 string 之间的相互转换问题

第一部分:将  char *    或者    char []   转换为  string可以直接赋值,转换。   第二部分:将   string   转换为 char *    或者    char []    string 是c++标准库里面其中一个,封装了对字符串的操作 把string转换为char* 有  3种方法: 1.  调用  st

2017-04-09 13:20:01 25403

转载 ReadFile

ReadFile函数从文件指针指定的位置读取数据。读操作完成后,文件指针将根据实际读出的数据自动进行调整,除非文件句柄是以OVERLAPPED属性值打开的。如果是以OVERLAPPED打开的I/O,应用程序就需要自己手动调整文件指针。    这个函数被设计成兼有同步和异步操作。ReadFileEx函数则设计成只支持异步操作,异步操作允许应用程序在读文件期间可以同时进行其他的操作。    函

2017-04-09 11:37:44 3799

转载 进程间通信详解 - 命名管道实现

引子好,到这里呢,就需要介绍实现进程间通信的第四种方式了,也就是通过命名管道来实现,前面介绍的那三种方式呢,都是有缺陷或者说局限性太强,而这里介绍的命名管道相对来说,在这方面就做得好很多了,比如,剪贴板的话只能实现本机上进程之间的通信,而邮槽的话虽然是可以实现跨网络之间的进程的通信,但麻烦的是邮槽的服务端只能接收数据,邮槽的客户端只能发送数据,太悲剧

2017-04-08 10:25:11 781

空空如也

空空如也

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

TA关注的人

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