C++
这家伙很懒什么都没留下
这个作者很懒,什么都没留下…
展开
-
用汇编的眼光看C++(开篇)
很多朋友,包括我自己在内,对C++语言的很多特性不是很明白。特别是几年前找工作的时候,为了应付来自工作单位的考试,我经常逼着自己的去记住一些复杂的试题和答案。可是常常时间已过,一切又回到了原点。原来没有弄清楚的问题还是没有弄明白,一切都没有发生改变。直到若干年后,当我在编码过程中不断积累经验,尝试用汇编代码和内存数据来解释一些现象的时候,才明白有些东西其实并不复杂。也许有的朋友对汇编语言会有畏惧,转载 2014-07-30 09:31:19 · 489 阅读 · 0 评论 -
用汇编的眼光看C++(之模板类)
如果类是一种确定的数据类型,那么模板就是一种对类的抽象。假设有这么一种类,它需要进行数据的计算,而且类型还很多,那么我们可能就要针对不同类型的数据定义不同的类。我们可以用下面一段代码说明问题:[cpp] view plaincopyclass int_process { int a; int b; publ转载 2014-07-30 09:58:28 · 346 阅读 · 0 评论 -
用汇编的眼光看c++(之模板函数)
如果说模板类定义的是一种数据类型,那么模板函数定义的就是一种函数。既然是函数,那么就有输入数据和输出数据。和模板类的概念差不多,模板函数的初衷也是为了在函数操作上抽取共同的特性,屏蔽的是类型的不同和差异。我们可以通过下面一个简单的代码说明问题:[cpp] view plaincopyint int_compare(int a, int b)转载 2014-07-30 09:59:09 · 370 阅读 · 0 评论 -
用汇编的眼光看C++(之退出流程)
无论是在判断还是在循环的过程中,通常在遇到合适的条件的时候就会退出相应的模块。跳出模块运行的方式很多,break,continue,return都可以。下面我们就可以分别对他们进行将介绍。 (1)continue只能用于循环,而break循环、判断都可以应用。两者有什么区别呢?[cpp] view plaincopy21:转载 2014-07-30 09:44:09 · 512 阅读 · 0 评论 -
用汇编的眼光看C++(之class构造、析构)
前面我们讨论基本上都是C语言的内容,还没有真正触及到C++的相关知识。从这篇博客之后,我们将会更多触及类的内容。类的属性很多,今天我们讨论主要就是构造函数、析构函数。 (1)如果没有构造函数、析构函数呢?[cpp] view plaincopyclass apple { public:转载 2014-07-30 09:49:58 · 414 阅读 · 0 评论 -
用汇编的眼光看C++(之算术符重载)
算术符重载是类的有一个特性,但是每个人使用的方法不一样。用的好,则事半功倍;但是如果不正确的使用,则会后患无穷。 (1) 简单算术符介绍 那什么是算术符重载呢?我们可以举个例子。一般来说,我们定义两个int类型的变量的话,我们就可应对这两个类型进行加、减、乘、除的操作,同时还能比较判断、打印、数组操作、*号操作等等。那么如果我们想自己定义的类也具有这样的属性,那我们应该转载 2014-07-30 09:56:32 · 295 阅读 · 0 评论 -
用汇编的眼光看C++(之const属性)
const是C/C++语言中的关键字,但是如果用的好,可以极大地提高代码的健壮性。一般来说const使用的地方还是蛮多的,但是主要还是下面几个地方:(1)普通变量的保护;(2)地址空间的保护;(3)类初始变量的声明和保护;(4)类变量在函数中的保护。const的保护主要来自于编译器层面,和程序的运行没有关系。 (1)普通变量的保护[cpp] view pl转载 2014-07-30 09:57:30 · 361 阅读 · 0 评论 -
用汇编的眼光看C++(之缺省模板、特化模板)
缺省函数是C++的一个基本特色。缺省函数定义比较简单,也就是说,对于函数的某一个输入参数或者几个输入参数,如果你没有特定的数值的话,那我们就会用缺省的数据进行代替。如果你在调用的过程中使用了自己的数据,那么缺省数据将被我们自己定义的数据覆盖。下面就是一个缺省函数的示例:[cpp] view plaincopyint add(int m, i转载 2014-07-30 10:01:45 · 330 阅读 · 0 评论 -
从汇编的眼光看C++(之delete内存泄露)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 有过C语言编程的朋友大多知道,如果在malloc内存之后不及时free掉内存,那么很有可能会造成内存泄露的。那么在C++上面,是不是也存在这样的问题呢?结果是C++上面同样也存在内存泄露的危险。这个危险就是如果new后面不能delete的话,也会造成内存的泄露。还有不转载 2014-07-30 10:04:13 · 397 阅读 · 0 评论 -
从汇编的眼光看C++(之指针拷贝)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 指针是编程人员的梦魇,对C语言的开发者是如此,对C++的开发者也是如此。特别是在C++中,如果不注意处理类中的指针,非常容易出问题。如果朋友们不相信可以看看下面的代码:[cpp] view plaincopycl转载 2014-07-30 10:05:00 · 379 阅读 · 0 评论 -
QT学习点滴记录(二)
示例名称:QtCreator添加菜单图标1. x原创 2014-09-19 10:53:19 · 518 阅读 · 0 评论 -
QT学习点滴记录(五)
QT 网络 TCP(二)原创 2014-09-22 14:50:27 · 765 阅读 · 1 评论 -
QT学习点滴记录(四)
网络TCP(一)一. 服务器端1. 新建一个QT Gui Application,工程名为"TCPServer", Base Class 选择QWidget, 并在工程文件TCPServer.pro中添加一句代码:QT += network2. 在widget.ui设计区添加一个Label, 更改其objectName为statusLabel, 用于显示一些状态信息 3.原创 2014-09-22 14:43:46 · 661 阅读 · 1 评论 -
用汇编的眼光看C++(之类静态变量、静态函数)
看过设计模式的朋友都知道,我们在设计单件模式的时候离不开类的静态函数。和类的成员变量不同,类的静态变量属于全部类对象数据;同样和类的成员函数不同,类的静态函数属于全部类函数共有。这句话读来想来有一些拗口,不过没有关系,我们可以通过一段代码来说明问题。 (1)静态变量 老规矩,我们首先对类进行初步定义,如下所示:[cpp] view plain转载 2014-07-30 09:55:37 · 311 阅读 · 0 评论 -
用汇编的眼光看C++(之类继承)
继承是类的一个基本属性,可是在类的继承过程中,函数是怎么初始化?怎么析构的呢?我们不妨看看下面这样的一段代码?[cpp] view plaincopyclass employee { public: employee() { printf("employee()!\n");} ~employee() {转载 2014-07-30 09:54:06 · 376 阅读 · 0 评论 -
用汇编的眼光看C++(之嵌入汇编)
嵌入式汇编是对纯汇编文件的一种有益补充。通常会有下面几种情况使用到汇编:(1)提高代码的工作效率 ,使用到cpu的一些特殊指令,比如说mmx指令;(2)对硬件进行某种特殊的操作,比如说关中断等,这在内核级的代码中是比较常见的。但是我们讲究嵌入式汇编的一些基本点和大家一起讨论一下,建议大家和我一起做实验,用事实证明一切。 (1)使用嵌入汇编的时候,注意寄存器的保护转载 2014-07-30 09:44:49 · 493 阅读 · 0 评论 -
用汇编的眼光看C++(之循环流程)
循环是我们编程中遇到的另外一项重要技术。通过反复的迭代运算,我们可以获取想要的任何结果。当然这种迭代是有基本条件的,或是以时间为条件的,或是以空间为条件的,或者是某一种外来交互作为条件的。循环的方式有很多种,但是常用的还是:while、for、do-while、goto这几种。很多公司的项目都不喜欢goto,这其中倒不是说goto不好,主要是goto的随意性太大,一旦用的不好,就会降低代码的可读性转载 2014-07-30 09:42:52 · 357 阅读 · 0 评论 -
用汇编的眼光看C++(之虚函数)
虚函数是面向对象设计中的一个重要内容。它的出现使得我们只需要相同的接口函数,并可以得到不同的生成结果。但是有些朋友却知其然,不知其所以然,为什么会出现这样的结果,我们可以用一段代码说明问题。首先,我们先定义两个基本类型,一个是employee,一个是manager,看过前面一片博客的朋友应该都有点印象:[cpp] view plaincopy转载 2014-07-30 09:52:36 · 338 阅读 · 0 评论 -
从汇编的眼光看C++(之递归函数与模板类)
递归,相信有过基本C语言经验的朋友都明白,就是函数自己调用自己。所以,本质上说,它和普通的函数调用没有什么区别。今天之所以会把模板类和递归联系在一起,是因为我们可以用递归的方法实现模板的递归。闲话不多说,我们先从一个统计函数开始说起。[cpp] view plaincopyint process(int m) { int转载 2014-07-30 10:00:28 · 365 阅读 · 0 评论 -
用汇编的眼光看C++(之算术符重载陷阱)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在算术符重载里面,“=”重载可能是最经常使用的一种。但是好多人就误以为在函数中,凡是类出现“=”的地方,那就是调用算术符重载,其实不然。为什么呢?我们可以看看下面的代码。首先,我们定义一个基本类:[cpp] view plaincopy转载 2014-07-30 10:03:25 · 307 阅读 · 0 评论 -
用汇编的眼光看C++(之缺省模板、特化模板)
缺省函数是C++的一个基本特色。缺省函数定义比较简单,也就是说,对于函数的某一个输入参数或者几个输入参数,如果你没有特定的数值的话,那我们就会用缺省的数据进行代替。如果你在调用的过程中使用了自己的数据,那么缺省数据将被我们自己定义的数据覆盖。下面就是一个缺省函数的示例:[cpp] view plaincopyint add(int m, i转载 2014-07-30 09:57:43 · 395 阅读 · 0 评论 -
从汇编的眼光看C++(之泛型编程)
泛型编程其实不难。本质上说,泛型编程就是让通用的算法应用到所有的数据类型。具体来说,int是我们熟悉的整数类型。那么一般情况下,如果我们写一个int整数的排序算法,应该怎么写呢?大家可以自己试试?下面的代码是我的一个范例;[cpp] view plaincopyvoid bubble_sort(int array[], int length)转载 2014-07-30 10:01:09 · 343 阅读 · 0 评论 -
用汇编的眼光看C++ (之x86汇编)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 说到用汇编的眼光看C++语言,那么怎么阅读汇编代码就成了我们需要解决的一个问题。其实,实话说,汇编其实不难。只是我们需要明白这样几个问题: (1)汇编是什么语言? (2)汇编中的主要内容有哪些? (3)汇编语言是怎么和实际C/转载 2014-07-30 09:30:48 · 516 阅读 · 0 评论 -
用汇编的眼光看C++(之指针)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 指针是我们在C/C++中经常遇到的一种数据类型。指针用的好,可以提高代码的可读性;但是如果使用不恰当,反而会造成很大的麻烦。指针,也就是指向某一种数据类型的地址。这种类型很多,它可以是编程语言自带的类型,比如说int、long、short、char、float、doub转载 2014-07-30 09:34:45 · 506 阅读 · 0 评论 -
用汇编的眼光看C++(之判断流程)
在我们平常的编程当中,用于判断的地方很多,但主要有下面三种方式:if-else;switch;?:。其中最后一种方式在本质上和if-else是一样的。switch和if-else其实也一样,如果我们把switch改成if(...) {} else if(...) {} else {},那么你实现的效果和switch实际差不多,熟悉的朋友都会有这样的体验。或许有的朋友还是不太相信,大家可以自己用写实转载 2014-07-30 09:39:43 · 368 阅读 · 0 评论 -
用汇编的眼光看C++(之特殊函数)
这里说的函数主要指的是inline函数、static函数。inline函数比较特殊,它既具有宏的性质,同时也能让编译器对它进行函数检查。static函数同样也比较特殊,它只可以被同文件的函数使用。如果static函数在include文件中,那么这个头文件只要被使用一次,那么这个函数就要在exec文件中重新出现一次。现在大家可能理解起来有点困难,但是请大家稍微等待一下,下面我们将会用示例进行说明。最转载 2014-07-30 09:49:35 · 322 阅读 · 0 评论 -
用汇编的眼光看C++(之拷贝、赋值函数)
拷贝构造函数和复制函数是类里面比较重要的两个函数。两者有什么区别呢?其实也很简单,我们可以举个例子,加入有这样一个类的定义:[cpp] view plaincopyclass apple { public: apple() { printf("apple()!\n");} apple(apple& a转载 2014-07-30 09:53:14 · 633 阅读 · 0 评论 -
QT学习点滴记录(一)
1. 软件安装及环境配置原创 2014-09-19 10:26:48 · 885 阅读 · 2 评论