c/c++
一只独立特行的猪
书山有路勤为径,学海无涯苦作舟。
展开
-
图解TCP-IP协议
本文通过两个图来梳理TCP-IP协议相关知识。TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道。如图1所示,给出了TCP通信过程的示意图。图1 TCP 三次握手四次挥手图1主要包括三部分:建立连接、传输数据、断开连接。1)建立TCP连接很简单,通过三次握手便可建立连接。2)建立好连接后,开始传输数据。TCP数据传输牵涉到的概念很多转载 2015-10-25 18:53:53 · 295 阅读 · 0 评论 -
关于一道面试题目的理解
代码如下:#include<iostream>using namespace std;class Base{public: Base(int i) { cout << i << endl; cout << "Base::Base()" << endl; ...原创 2018-03-07 18:59:14 · 364 阅读 · 0 评论 -
对mutable的认识
首先我是在VS2015的环境下编写代码所以在这里写个简单的类来说明问题的情况:class A{public: A(); ~A(); void updateCamView(Camera *cam); Matrixcs getMatrixView()const;private: Matrixcs m_MatView;//说明Matrixcs是一个矩阵类在这里原创 2017-10-19 19:02:58 · 269 阅读 · 0 评论 -
提高对C++的认识
C++中有很多 “东西”:C,重载,面向对象,模板,例外,名字空间。这么多东西,有时让人感到不知所措。怎么弄懂所有这些东西呢? C++之所以发展到现在这个样子,在于它有自己的设计目标。理解了这些设计目标,就不难弄懂所有这些东西了。C++最首要的目标在于: · 和C的兼容性。很多很多C还存在,很多很多C程序员还存在。C++利用了这一基础,并建立在 —- 我是指 “平衡在” —- 这一基础之上。转载 2017-03-11 22:41:50 · 429 阅读 · 0 评论 -
C++ 私有构造函数的作用
很多情况下要求当前的程序中只有一个object。例如一个程序只有一个和数据库的连接,只有一个鼠标的object。通常我们都将构造函数的声明置于public区段,假如我们将 其放入private区段中会发生什么样的后果?这意味着什么? 当我们在程序中声明一个对象时,编译器为调用构造函数(如果有的话),而这个调用将通常是外部的,也就是说它不属于class对象本身的调用,假如构造函数是私有转载 2017-03-18 20:34:00 · 628 阅读 · 0 评论 -
关于打包程序INNO SetUp软件的使用心得
最近在为项目做打包程序,发现了一款软件用起来也特别方便,现在由下面来阐述我在项目中打包中所遇到的一些问题。 脚本代码如下:#define MyAppName "MyProgram1.0"#define MyAppVersion "1.0"#define MyAppPublisher "XX软件科技股份有限公司"#define MyAppURL "http://www.XXXXX.com/"原创 2017-01-08 10:27:03 · 774 阅读 · 0 评论 -
归并排序
归并排序用到了分治策略。用分治策略解决问题分为三步:分解、解决、合并。也即:将原问题划分成n个规模较小而结构与原问题相似的子问题; 递归地解决这些子问题,然后再合并其结果,得到原问题的解。此处n=2归并排序的伪代码(来自算法导论)123456789101112131415161718192021222324252627合并排序伪代码(使用哨兵):merge(A,转载 2015-10-14 22:04:16 · 342 阅读 · 0 评论 -
简单的实现一个string类
#ifndef _STRING_H_#define _STRING_H_#define NULL 0 class String{public: String(const char* str = NULL);//构造函数 String(String& str);//拷贝构造函数 ~String(); //析构函数 String& operator原创 2016-12-04 18:39:48 · 477 阅读 · 0 评论 -
如何定义一个回调函数,理解回调函数调用机制
回调函数就是被调用者回头调用调用者的函数。回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函原创 2016-12-03 20:17:05 · 3417 阅读 · 0 评论 -
拷贝构造函数和赋值运算符区别
‘=’只有在赋值时,才调用赋值函数,当在声明变量时,B b3=b1和B b4(b3)调用的函数是一样的,均为拷贝构造函数。一、 拷贝构造,是一个的对象来初始化一边内存区域,这边内存区域就是你的新对象的内存区域赋值运算,对于一个已经被初始化的对象来进行operator=操作 class A; A a; A b=a; //拷贝构造函数调用 //或 A b(a); /转载 2016-12-11 16:06:04 · 497 阅读 · 0 评论 -
C++中对字节对齐的理解
前几天时,在公司和同事说到了字节对齐,一直对这个概念比较模糊,只是在《程序员面试宝典》中看到过简单的描述和一些面试题。后来在论坛中有看到有朋友在询问字节对齐的相关问题,自己也答不上来,觉得应该研究一下,所以就有了这一篇博文,是对学习的一个总结,也是对成长轨迹的一个记录。 字节对齐,又叫内存对齐,个人理解就是一种C++中的类型在内存中空间分配策略。每一种类型存储的起始地址,都要求是一个对转载 2016-12-11 14:54:02 · 2381 阅读 · 0 评论 -
深入理解C++的动态绑定和静态绑定
为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误,需要理解四个名词: 1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。 2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改。关于对象的静态类型和动态类型,看一个示例:class B{}class C : pub转载 2016-12-10 16:59:48 · 282 阅读 · 0 评论 -
自己关于写wave音频文件得源代码(备忘录)
头文件:SoundRecord.h#ifndef _SOUND_RECORD_H__#define _SOUND_RECORD_H__#include &lt;Windows.h&gt;#include &lt;mmsystem.h&gt;#include &lt;string&gt;#define MAX_BUFFERS 3#define m_samplefreq 44100 ...原创 2018-09-03 17:38:19 · 532 阅读 · 0 评论