- 博客(24)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 野指针和内存泄漏以及内存溢出总结
野指针(Wild Pointer ):指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为NULL避免,而只能通过养成良好的编程习惯来尽力减少。对野指针进行操作很容易造成程序错误。1.指针变量未初始化任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将
2016-10-31 15:35:30 4545 6
转载 类图画法
一、类图画法1、 类图的概念A、显示出类、接口以及它们之间的静态结构和关系B、用于描述系统的结构化设计2、 类图的元素类、接口、协作、关系,我们只简单介绍一下这四种元素。同其他的图一样,类图也可以包含注解和限制。类图中也可以包含包和子系统,这两者用来将元素分组。有时候你也可以将类的实例放到类图中。3、 类A、 类是对一组具有相同属性、操作、关系和语义的对
2016-10-29 14:28:56 6422
转载 UML中类关系之---依赖关系及其代码的表现形式
本文章转载自:http://www.cnblogs.com/DebugLZQ/archive/2013/05/13/3066715.html么是类?将某类东西归纳在一起,可以成为一个类。类有很多种提炼角度,需要根据系统地目标、业务的场景,选取合适的角度对事物进行归纳。什么是类图?类图可能是UML中使用的最多的一种图。和其他图一样,类图的基本语法并不复杂,可能一两天就能掌握,
2016-10-28 16:31:17 5249 3
原创 string 类 用.at越界抛出异常捕捉
#include #include#includeusing namespace std; int main(int argc,char * argv[]){ string Variable("zhang"); cout char temp='a'; try { temp = Variable.at(9
2016-10-28 11:08:40 1146
转载 字符的几种编码方式
无论在是在编辑文本文件的时候,还是在制作网页的时候,总会遇到文本编码方式的问题。如果处理不当,就会出现乱码的问题。因此,有必要对文本的编码方式做一个详尽的了解。常见的一些字符编码方式无非有:Unicode、ASCII、GBK、GB2312、UTF-8。下面先对常见的这一些字符编码方式作下说明:1.ASCII码这是美国在19世纪60年代的时候为了建立英文字符和二进制的关系时制定的编码规范
2016-10-28 10:54:44 2262
转载 回调函数
回调函数 在看LWIP时,见到用回调函数,再看某老外公司OPC源代码时,见到用回调函数。看我国内某些代码(我公司软件等)时没用到。于是,我对回调函数产生了很大的好奇。以前,我写VC程序时用到过回调函数,但是没有用C语言来使用。最近,看到国外大量的经典代码中广泛使用了回调函数(LWIP、某两个公司的OPC程序等),都是C语言来实现的,而不是VC windows程序中别人实现自己使用的那种。
2016-10-27 11:27:00 253
转载 堆和栈的区别(非常经典)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构
2016-10-26 14:13:38 442
转载 对深拷贝和浅拷贝的再次理解
记得11年底找工作的时候,面试时曾经遇到有面试官问的对深拷贝与浅拷贝的理解,那时候自己回来查了资料,写了篇博客,感觉自己理解了,其实理解的不深刻,最近在调试bug的时候,再次遇到深拷贝与浅拷贝,认真分析了,写写自己的心得吧。 先说下自己的理解吧,浅拷贝,即在定义一个类A,使用类似A obj; A obj1(obj);或者A obj1 = obj; 时候,由于没有自定义拷贝构造函数,C+
2016-10-26 13:36:32 333
原创 C ++ 拷贝构造函数和赋值构造函数 非常经典
C++ 拷贝构造函数 赋值构造函数拷贝构造函数和赋值构造函数的异同由于并非所有的对象都会使用拷贝构造函数和赋值函数,程序员可能对这两个函数有些轻视。请先记住以下的警告,在阅读正文时就会多心:如果不主动编写拷贝构造函数和赋值函数,编译器将以“位拷贝”的方式自动生成缺省的函数。倘若类中含有指针变量,那么这两个缺省的函数就隐含了错误。以类String 的两个对象a,b 为例,Cla...
2016-10-26 11:53:50 4266
原创 构造函数的显示调用和隐示用例子
#include using namespace std;//class MyClass{public: MyClass(int value) :mValue(value) { } void display() { cout }private: int mValue;};
2016-10-25 14:24:30 930
原创 c++ 中用typedef定义新类型(类对象)小例子
#include using namespace std;//class MyClass{public: MyClass(int value) :mValue(value) { } void display() { cout }private: int mValue;};
2016-10-25 14:21:29 2258
转载 explicit关键字
关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。 C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造器 2 是个默认且隐含的类型转换操作符。 所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的类
2016-10-25 11:32:55 195
转载 C++ 类型转换函数
用转换构造函数可以将一个指定类型的数据转换为类的对象。但是不能反过来将一个类的对象转换为一个其他类型的数据(例如将一个Complex类对象转换成double类型数据)。在C++提供类型转换函数(type conversion function)来解决这个问题。类型转换函数的作用是将一个类的对象转换成另一类型的数据。如果已声明了一个Complex类,可以在Complex类中这样定义类型转
2016-10-25 11:32:00 1547 1
转载 C++中实现WebService以及调用WebService
因为最近的项目中需要运用到在MFC程序中调用WebService里面集成好了的函数,所以特意花了一天的时间来研究WebService的构建以及如何在MFC的程序中添加Web引用,进而来实现在C++ MFC中调用那些WebService中写好的函数,中间也是遇到了一些不懂和不解的地方,好在通过度娘上的一些资料和自己的研究逐一的解决了,写这篇文章的主要目的是,第一:让自己记得更清楚,也方便以后不记得了
2016-10-21 09:02:08 9166
转载 设计模式之观察者模式
Observer观察者模式作用:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己UML图:Subject类,可翻译为主题或抽象通知者,一般用一个抽象类或者一个借口实现。它把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个借口,可以增加和删
2016-10-20 16:50:19 260
转载 wireshark 还原语音包 RTP,以及wireshark对包进行过滤分析
一.最近在做基于SIP的VoIP通信研究,使用Wireshark软件可以对网络流量进行抓包。VoIP使用RTP协议对语音数据进行传输,语音载荷都封装在RTP包里面。要对传输中的语音进行截获和还原,需要通过Wireshark对RTP包进行分析和解码。该过程如下:1.打开截获的pcapng文件,点击Telephony-->RTP-->Show All Streams.2.根据发送地
2016-10-17 16:01:18 10240
原创 ICE通信 ----实现vs2013客户端服务器之间的简单通信,hello world 程序。
在电脑上安装两个 安装包 Ice-3.5.1-VS2013.msi 和Ice-3.5.1.msi其中第一个文件的作用是 在 vs2013 的项目--》》属性中--》》ICE configration进行配置的界面。然后把自己写的ICE程序放在这个 资源文件下,然后进行ICE 的配置,配置完成后会自动生成 h和.cpp文件。然后再自己书写 server.cpp 具体书写内容...
2016-10-14 11:20:43 3684
转载 windows 下环境变量 path 详解
在学习JAVA的过程中,涉及到多个环境变量(environment variable)的概念,如PATH。正确地配置这些环境变量,是能够顺利学习、开发的前提。而经常出现的问题是:有的学习者能够按照提示一步一步地正确配置,但时间一长就忘了,出现了问题也无从下手。究其原因,就是对这些概念没有理解,知其然但不知其所以然。下面的内容,就是帮助大家知其所以然。一、基本原理 首先看PATH环境
2016-10-14 09:06:22 39400 3
原创 动态库的显示链接和隐式链接
我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。 (1)静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。 (2)动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。本节将进行讲解动态库的显示链接和隐式链接,在下一节说明静态库的引用1.动态库的显示链
2016-10-11 17:24:46 3609
原创 一般----派生类构造函数的写法
定义派生类构造函数应该包括三部分内容(1)对基类数据成员进行初始化(2)对子对象数据成员进行初始化(3)对派生类数据成员初始化一般形式为:派生类构造函数名(总参数表):基类构造函数名(参数表),子对象名(参数表){ 派生类中新增数据成员初始化语句}注意: 总参数表中的数据 包括 形参类型和形参变量 而参数表中只有变量名没有变量类型。例子就
2016-10-11 14:18:54 4017
原创 虚函数中virtual关键字的使用问题
在C++中用到关键字virtual的一共有两个部分一个是虚继承,一个是虚函数今天主要讲解虚函数中用到virtual的一些简单部分。就当是加深记忆1.在基类中声明虚函数一定要用关键字 virtual2.而如果虚函数的实现单独来做,则不能用virtual关键字,否则会报错。3.而在自类中对虚函数进行重写的时候,需要先在自类中声明这个虚函数,可以加 virtual关键字,也可以不加,
2016-10-11 13:34:49 4760
原创 函数重载和函数模板的区别
函数重载通常在C语言编程中,如果我们比较三个整数的大小,我们可以进行编写一个max()函数,而如果我们要继续比较三个浮点数的大小,就需要重新编写一个函数,函数体基本是完全相同的,就是返回值和参数类型是不同的,但是函数名称不能是一个了,所以要写第二个函数max1()。在C++中就可以避免这个问题,允许用同一个函数名定义多个函数,但是一定要注意一点,重载函数的参数个数、参数类型、参数顺序、这三
2016-10-10 19:42:40 6729 2
原创 常指针和指向常量的指针的区别
最近在学习引用,有一些学习心得,记录如下:1.引用是变量的别名int a;int b&=a;要注意引用只有声明,而没有定义,并且引用必须在声明的时候进行初始化,一旦与某个变量关联起来,就将一直效忠于它。2.引用的实质是指针。其中引用出现在C++中的理由,也是为了在一定程度上回避一下C语言中的指针问题。引用相当于 常指针 int a;int &b=a;//
2016-10-10 17:27:15 6518
转载 C++中对纯虚函数和多态的理解
抽象类是一种特殊的类,它是为了抽象和设计的目的为建立的,它处于继承层次结构的较上层。 ⑴抽象类的定义: 称带有纯虚函数的类为抽象类。 ⑵抽象类的作用: 抽象类的主要作用是将有关的操作作为结果接口组织在一个继承层次结构中,由它来为派生类提供一个公共的根,派生类将具体实现在其基类中作为接口的操作。所以派生类实际上
2016-10-10 16:11:53 1992
LocationNavigate.dll
2019-09-24
当网络带宽满了以后数据发生丢失是在哪一层发生的?(ISO 5层模型)
2022-01-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人