-
Qt Creator自定义编译运行流程
所属栏目:[教程] 日期:2021-11-19 热度:55
一直用Qt Creator开发。无它,只是因为linux下C++ IDE选择不多。同时因为我抛弃了MFC,平时写个小工具还得靠Qt,正好一举两用。 用Qt Creator开发一般的工程,是不用修改编译、运行步骤的。编译、运行都是一键完成。不过,像我这个多进程的工程,由一个总工程[详细]
-
C++ 新标准下的强制类型转换分析
所属栏目:[教程] 日期:2021-11-19 热度:100
使用标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast。 static_cast 用法:static_casttype_id (expression) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: 用于[详细]
-
分析C++ 类的前置声明的使用
所属栏目:[教程] 日期:2021-11-19 热度:91
刚开始学习C++的人都会遇到这样的问题: 定义一个类 class A,这个类里面使用了类B的对象b,然后定义了一个类B,里面也包含了一个类A的对象a,就成了这样: //a.h #include b.h class A { .... private: B b; }; //另一个头文件 b.h #include a.h class B {[详细]
-
认识复杂C声明的黄金法则
所属栏目:[教程] 日期:2021-11-19 热度:118
黄金法则:从声明的变量开始,先向右看,再向左看,再向右看,再向左看 。如果向右看的时候遇到),则一直向左看,直到遇到(跳出这层括号。然后再重复向右看,向左看。 举例说明: 例子1 int a; a 的右边什么都没有,向左看int,说明a是一个int型变量。 例子2[详细]
-
畅聊Objective-C字面量
所属栏目:[教程] 日期:2021-11-19 热度:145
编写Objective-C程序时,总会用到某几个类,它们属于Foundation框架。虽然从技术上来说,不用Foundation框架也能写出Objective-C代码,但实际上却经常要用到此框架。这几个类是NSString、NSNumber、NSArray、NSDictionary。从类名上即可看出各自所表示的数据[详细]
-
Linux 网络编程——TCP 和 UDP 数据报文式分析
所属栏目:[教程] 日期:2021-11-19 热度:125
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 TCP 报文段的报头有 10 个必需的字段和 1 个可选字段。报头至少为 20 字节。报头后面的数据是可选项。 1)源端口(16位) 标识发送报文的计算机[详细]
-
深入认识二进制补码
所属栏目:[教程] 日期:2021-11-19 热度:123
背景 大家都知道计算机内部采用补码表示整数的,但是具体到补码的内在含义,很多人不能理解,故我们分享自己的理解。 首先说下补码的定义以及基本性质: 1) 正数的补码和原码相同; 2) 负数的补码等于取反后加1; 3) 0的正负两种补码相同; 4) 对一个补[详细]
-
Qt5中文显示出现乱码处理
所属栏目:[教程] 日期:2021-11-19 热度:178
Qt中的中文显示,经常会出现乱码,但在UI设计界面上添加的中文是不会出现乱码的,如果你刚使用qt,那么你肯定会碰到这个问题。 网上搜索一下,找到的都是这种: #include QTextCodec int main(int argc, char **argv) { .................... QTextCodec::se[详细]
-
二叉搜索树的Java达成
所属栏目:[教程] 日期:2021-11-19 热度:186
为了更加深入了解二叉搜索树,本人用Java写了个二叉搜索树,有兴趣的同学可以一起探讨探讨。 首先,二叉搜索树是啥?它有什么用呢? 二叉搜索树, 也称二叉排序树,它的每个节点的数据结构为1个父节点指针,1个左孩子指针,1个有孩子指针,还有就是自己的数[详细]
-
Java编程:组合、继承和代理的差异
所属栏目:[教程] 日期:2021-11-19 热度:50
组合、继承和代理三者的定义: 组合:在新类中new 另外一个类的对象,以添加该对象的特性。 继承:从基类继承得到子类,获得基类的特性。 代理:在代理类中创建某功能的类,调用类的一些方法以获得该类的部分特性。 使用场合: 组合:各部件之间没什么关系,[详细]
-
Spring AOP详细详解
所属栏目:[教程] 日期:2021-11-18 热度:89
AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子。 一 AOP的基本概念 (1)Aspect(切面):通常是一个类,里面可以定义切入点和通知 (2)JointPoint([详细]
-
几大排序算法的Java达成
所属栏目:[教程] 日期:2021-11-18 热度:175
很多的面试题都问到了排序算法,中间的算法和思想比较重要,这边我选择了5种常用排序算法并用Java进行了实现。自己写一个模板已防以后面试用到。大家可以看过算法之后,自己去实现一下。 1.冒泡排序:大数向下沉,小数向上[详细]
-
Python装饰器分析
所属栏目:[教程] 日期:2021-11-18 热度:187
装饰器主要是用来包装函数,对于一些常用的功能,譬如:日志打印,函数计时,身份认证。我们可以使用装饰器来实现,这样可以降低整个程序的复杂度和减少程序的代码量。 它实际上就是函数,不同的是,它把一个函数当做参数,然后返回一个替代版函数。 下面看[详细]
-
C与C++函数声明时的几个小的语法区别
所属栏目:[教程] 日期:2021-11-18 热度:197
C与C++函数声明时的几个小的语法差异 1 无参函数的声明 void f() { } int main(void) { f(10,hello); return 0; } 上述代码在C语言中是完全正确的。但是在C++中确是错误的。 void f() * 在C中表示函数f可以接受任何类型,任意数量的参数。(然而并没有提供如[详细]
-
深入认识Android View 生命周期
所属栏目:[教程] 日期:2021-11-18 热度:79
作为自定义 View 的基础,如果不了解Android View 的生命周期 , 那么你将会在后期的维护中发现这样那样的问题 ....... 做过一段时间Android 开发的同学都知道,一般 onXXX 函数都是系统的回调函数。而这篇文章也是基于这个思想(或许有点笨微笑)...... 首[详细]
-
Android Otto框架畅聊
所属栏目:[教程] 日期:2021-11-18 热度:88
一、Android Studio中配置Otto (Eclipse中直接下载jar包导入) 跟之前介绍的其他的框架一样,它只需要简单地在build.gradle中配置下面一行红色字体即可 dependencies { compile fileTree(dir: libs, include: [*.jar]) compile com.android.support:appcompat[详细]
-
Java使用代理访问网络的技巧
所属栏目:[教程] 日期:2021-11-18 热度:60
有些时候我们的网络不能直接连接到外网, 需要使用http或是https或是socket代理来连接到外网,这里是Java使用代理连接到外网的一些方法. 方法一: 使用系统属性来完成代理设置,这种方法比较简单, 但是不能对单独的连接来设置代理: Properties properties=System[详细]
-
白话经典算法系列之 归并排序的达成
所属栏目:[教程] 日期:2021-11-18 热度:189
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然[详细]
-
Glibc内存管理措施
所属栏目:[教程] 日期:2021-11-18 热度:67
程序员接触的内存空间和系统接触的物理内存空间是有所区别的。对于一般进程来讲,他面对的是一个线性虚拟内存空间:地址从0到最大值。每一个进程面对的虚拟内存空间都是一样的,都享有全部的内存地址。虚拟内存空间是线性的,但并不意味着是连续的。部分地址[详细]
-
Linux C动态内存泄漏追踪技巧
所属栏目:[教程] 日期:2021-11-18 热度:162
C里面没有垃圾回收机制,有时候你申请了动态内存却忘记释放,这就尴尬了(你的程序扮演了强盗角色,有借有还才是好孩子)。当你想找出内存泄露的地方时,有的投入海量的代码中,头痛不已。还好GNU C库提供了些简单的方法。 mtrace和muntrace两个函数可以帮助[详细]
-
Java序列化和持久化的差异与联系
所属栏目:[教程] 日期:2021-11-18 热度:80
持久化(Persistence) 即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。 持久化是将程序数据在持久状态和瞬时状态间转换的[详细]
-
HttpSession与Hibernate中Session的差异
所属栏目:[教程] 日期:2021-11-18 热度:103
一、javax.servlet.http.HttpSession是一个抽象接口 它的产生:J2EE的Web程序在运行的时候,会给每一个新的访问者建立一个HttpSession,这个Session是用户身份的唯一表示。注意,是容器(Tomcat,Resin)自动创建的。 用途:存放这个用户的一些经常被用到的信[详细]
-
Hibernate相关概念及序列化和持久化的差异
所属栏目:[教程] 日期:2021-11-18 热度:92
一. Hibernate 初识 hibernate是一种ORM(object relation mapping,对象关系映射)框架,所谓的对象关系映射,通俗的说,就是把JAVA对象保存到关系型数据库中。 hibernate要做的事,就是让对象投影到关系数据库中,然后实施持久化。其具体实现:建立对象到关[详细]
-
GDAL关于读写图像的简明概括
所属栏目:[教程] 日期:2021-11-18 热度:192
读写影像可以说是图像处理最基础的一步。关于使用GDAL读写影像,平时也在网上查了很多资料,就想结合自己的使用心得,做做简单的总结。 在这里写一个例子:裁剪lena图像的某部分内容,将其放入到新创建的.tif文。以此来说明GDAL读写影像的具体实现。 1.打开[详细]
-
VS2015下编译64位GDAL概括
所属栏目:[教程] 日期:2021-11-18 热度:96
使用VS2015编译最新的64位GDAL(最新gdal2.11),确实有一些问题,看来双方还是太新了,有点不兼容,特总结如下。 以前经常用的通过VisualStudio IDE进行编译的方式现在似乎不能使用了, makegdal_gen.bat还是可以生成工程,也能升级成VS2015的工程,但是修[详细]