自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (3)
  • 收藏
  • 关注

转载 C++编译器与链接器工作原理

这里并没不是讨论大学课程中所学的《编译原理》,只是写一些我自己对C++编译器及链接器的工作原理的理解和看法吧,以我的水平,还达不到讲解编译原理(这个很复杂,大学时几乎没学明白)。要明白的几个概念:    1、编译:编译器对源文件进行编译,就是把源文件中的文本形式存在的源代码翻译成机器语言形式的目标文件的过程,在这个过程中,编译器会进行一系列的语法检查。如果编译通过,就会把对应的CP

2015-12-24 16:21:48 305

转载 PDB文件:每个开发人员都必须知道的

PDB文件:每个开发人员都必须知道的 一 什么是PDB文件大部分的开发人员应该都知道PDB文件是用来帮助软件的调试的。但是他究竟是如何工作的呢,我们可能并不熟悉。本文描述了PDB文件的存储和内容。同时还描 述了debugger如何找到binay相应的PDB文件,以及debugger如何找到与binay对应的源代码文件。本文适用于所有的Native和 Managed的开发人员。 

2015-12-08 14:24:55 339

转载 虚函数与多态

多态多态的这个概念稍微有点模糊,如果想在一开始就想用清晰用语言描述它,让读者能够明白,似乎不太现实,所以我们先看如下代码://例程1 #include iostream>      using namespace std;        class Vehicle {    public:         Vehicle(float speed,int tota

2015-05-19 11:13:37 360

转载 C++四种强制类型转换的总结

C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。  const_cast,字面上理解就是去const属性。  static_cast,命名上理解是静态类型转换。如int转换成char。  dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类型转换。  reinterpreter_cast,仅仅重新解释类型,但没有进行

2015-04-23 14:45:58 309

转载 STL 中的map讲解

Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有

2015-04-23 14:28:17 272

转载 Qt 代理

QT:在QTableView中使用各种自定义委托[日期:2012-07-30]来源:Linux社区  作者:aaa20090987[字体:大 中 小]QT的MVC(View/Delegate)模型十分强大,可以利用各种控件来对表格的输入进行限制,不过我以前一直没有过,这几天研究了一下,写个小例子,希望大家喜欢。如果看不懂这个例子,请先看QT的自带

2014-11-12 20:02:44 919

转载 QT MVC模式

QT项视图类主要有三种: QListView,QTreeView,QTableView,对应的基础Model为 QAbstractItemModel(QStandardItemModelo为QAbstractItemModel实现), 对于QListView和QTableView则分别提供了QStringListModel,QAbstractTableModel实现.    一直不太喜欢用

2014-11-12 19:32:58 753

转载 C++ 中extern 的用法

前段时间看了extern 的用法,今天试了一下出现了如下问题,我在一个头文件1中定义了全局常量,然后在头文件2中定义了同样的全局变量,然后把两个头文件包含在另外一个cpp里面出现了了重新定义的错误,去掉头文件2中的全局定义,undeclared identifier 的错误。最后把2中的所有全局变量加上了extern,结果出现undeclared indentifier错误,后经过查找在头文件2中

2014-10-22 18:04:32 893

转载 C++的函数重载

——每个现象后面都隐藏一个本质,关键在于我们是否去挖掘写在前面:函数重载的重要性不言而明,但是你知道C++中函数重载是如何实现的呢(虽然本文谈的是C++中函数重载的实现,但我想其它语言也是类似的)?这个可以分解为下面两个问题1、声明/定义重载函数时,是如何解决命名冲突的?(抛开函数重载不谈,using就是一种解决命名冲突的方法,解决命名冲突还有很多其它的方法,这里就不论述了)2、当

2014-10-22 16:51:52 224

转载 C++ inline 内联函数

内联函数:(1)       内联函数定义和作用:将一个函数声明为inline,那么函数就成为内联函数。内联函数通常就是它在程序中每个调用点上“内联地”展开。从定义上看,内联函数跟一般函数不一样,一般函数调用的时候是需要调用开销的(比如出栈入栈等操作),内联函数从定义上看更像是宏,但是跟宏不一样。内联函数的作用主要就是使用在一些短小而使用非常频繁的函数中,为了减少函数调用的开销,为了避

2014-10-22 16:41:38 406

转载 C++默认参数

函数的默认参数值,即在定义参数的时候同时给它一个初始值。在调用函数的时候,我们可以省略含有默认值的参数。也就是说,如果用户指定了参数值,则使用用户指定的值,否则使用默认参数的值。

2014-10-22 16:26:14 296

原创 c/c++ 引用和指针

1:引用的和指针在概念上的区别  (一)引用是变量的别名,例如  int m;  int &n=m;  引用作为一个别名。它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。则任何对引用的操作即对变量的操作。  引用一般是用于处理函数的参数与返回值。

2014-10-22 15:39:52 354

转载 c++ 中Vector的用法

在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结。1 基本操作(1)头文件#include.(2)创建vector对象,vector vec;(3)尾部插入数字:vec.push_back(a);(4)使用下标访问元素,cout(5)使用迭代器访问元素.vectorint>::iterator it;for(it=ve

2014-10-22 14:27:26 672

转载 C++设计模式-Builder建造者模式

作用:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。Builder模式和AbstractFactory模式在功能上很相似,因为都是用来创建大的复杂的对象,它们的区别是:Builder模式强调的是一步步创建对象,并通过相同的创建过程可以获得不同的结果对象,一般来说Builder模式中对象不是直接返回的。而在AbstractFactory模式中对象是直接返回的,Ab

2014-10-20 15:25:35 356

原创 error LNK2001

c++ 无法解析的外部符号 1>p.obj : error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall

2014-10-20 15:08:46 337

原创 简单工厂与策略模式

类图:简单工厂模式的优缺点分析:        优点:工厂类是整个模式的关键所在。它包含必要的判断逻辑,能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。用户在使用时可以直接根据工厂类去创建所需的实例,而无需了解这些对象是如何创建以及如何组织的。有利于整个软件体系结构的优化。      缺点:由于工厂类集中了所有实例的创建逻辑,这

2014-10-17 16:24:41 384

原创 O(∩_∩)O好的 架构——架构评估

架构评估有两种方式。第一种评估方式是确定架构的属性,通常通过建模或模拟系统的一个或者多个fangm

2014-08-28 19:42:53 334

原创 Delphi 中stdcall与external的意义

stdcall是对这个函数的调用方式,具体描述了参数传递顺序是从右到左,在例程内清除参数堆栈。external表示函数不在本单元中实现,而是引用了外部dll中的函数

2014-07-30 11:14:28 3463

转载 四叉树空间索引原理及其实现

今天依然在放假中,在此将以前在学校写的四叉树的东西拿出来和大家分享。四叉树索引的基本思想是将地理空间递归划分为不同层次的树结构。它将已知范围的空间等分成四个相等的子空间,如此递归下去,直至树的层次达到一定深度或者满足某种要求后停止分割。四叉树的结构比较简单,并且当空间数据对象分布比较均匀时,具有比较高的空间数据插入和查询效率,因此四叉树是GIS中常用的空间索引之一。常规四叉树的结构如图所示,地

2014-07-30 10:31:22 784

转载 Qt中的元对象系统

Qt中的元对象系统moc什么是元对象?In computer science, a metaobject or meta-object is any entity that manipulates, creates, describes, or implements other objects. The object that the metaobject is abo

2014-07-27 18:20:37 688

转载 fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

连接器LNK是通过调用cvtres.exe完成文件向coff格式的转换的,所以出现这种错误的原因就是cvtres.exe出现了问题。在电脑里面搜索一下cvtres.exe,发现存在多个文件,使用最新的cvtres.exe替换老的文件即可,替换之前记得备份一下,如果不对,可以替换回来。例如:我的电脑里面安装了vs2010,最近更新了系统,打了一些补丁,结果就出

2014-07-25 14:20:17 331

转载 Delphi 包的设计思想及它与PAS、BPL、DCU、DLL、OXC的关系。

一、Delphi中各种文件的介绍,及其关系。OXC: ActiveX控件。会被安装到某一个组件包DPK中,在Imports中会创建PAS、DCU、DCR三个文件。DLL: 动态链接库文件,它的Exports exports既可以写在工程文件里面,也可以写在Unit里面,没有区别。DPK: 组件包文件,它是由多个组件(PAS)集合而成的。BPL: 包裹文件,其实就是D

2014-07-10 12:28:35 336

转载 互联网标准协议OAuth2.0简介

OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。

2014-07-08 08:08:38 1491

原创 你的类需要复制构造函数吗?

很多时候的daan

2014-06-11 23:26:29 351

原创 互联网思维

互联网思维:是不

2014-06-08 20:47:35 1080

转载 RAII

RAII,也称为“资源获取就是初始化”,是c++等编程语言常用的管理资源、避免内存泄露的方法。它保证在任何情况下,使用对象时先构造对象,最后析构对象RAII简介编辑RAII[1](Resource Acquisition Is Initialization),也成为“资源获取就是初始化”,是C++语言的一种管理资源、避免泄漏的惯用法。C++标准保证任何情况下,已构造的对象最

2014-06-08 12:42:05 388

原创 C++的多重继承

C++的多重继承

2014-06-08 12:03:02 408

原创 明智而审慎的使用Private继承

C++如何将Public继承视为Is-a。Private继承并yi

2014-06-08 11:26:47 417

转载 考虑Virtual函数以外的其他选择

假设你正在写一个视频游戏软件,游戏里有各种各样的人物,每个人物都有健康状态,而且不同的人物可能以不同的方式计算他们的健康指数.该如何设计游戏里的人物,主要如何提供一个返回人物健康指数的接口.  方法一,基于虚函数的方法.  在人物角色的基类增加一个成员函数heathValue,返回一个整数,表示人物的健康程度,并将声明为virtual.1 class GameCharact

2014-06-05 20:23:06 476

转载 接口继承与实现继承

所谓接口继承,就是派生类只继承函数的接口,也就是声明;而实现继承,就是派生类同时继承函数的接口和实现。我们都很清楚C++中有几个基本的概念,虚函数、纯虚函数、非虚函数。虚函数:虚函数是指一个类中你希望重载的成员函数,当你用一个基类指针或引用指向一个继承类对象的时候,你调用一个虚函数,实际调用的是继承类的版本。——MSDN虚函数用来表现基类和派生类的成员函数之间的一种

2014-06-05 18:44:40 352

原创 inlining的里里外外

最近在看Effective C++,有些关于inline的摘录下来以供大家理解。Inline

2014-06-02 11:20:57 497

转载 Copy-and-swap

为了在自定义类里重载一个异常安全(exception safe)的赋值操作符,创造了一个这样的习惯用语。也叫:Create-Temporary-and-Swap。要想写健壮的C++代码,异常安全非常重要。可以给异常安全分三级:1> 基本安全:实现简单、代价小。应该作为常规手段。2> 很安全:在任何场合都实现这一步不太可能。本例的赋值操作符重载算是一个。3> 不抛出异常:可以看n

2014-06-02 10:44:39 809

转载 C++ 异常安全

什么是异常安全的代码      一直以来,我对“异常安全”这个概念都不是太理解,今天查阅了一些资料,终于弄清楚了它的意思。      “异常安全”并不是说不能抛出异常,更不是说“非常安全的意思”,而是说即使在抛出异常的时候(如果有异常的话),程序回退的过程是干净的。      “异常安全”分为三个级别:       1.基本级别:可能发生异常,但是彼时代码保证做了任何必要的

2014-06-02 10:40:23 862

粒子效果+喷泉 OPenGL

主用用OPenGL技术实现的粒子效果和喷泉。非常简单易懂。

2010-06-22

OpenGL 虚拟漫游

利用OpenGL技术设计的虚拟漫游场景,其中包括代码的编写,和实现。对初学者有很大帮助。

2010-06-21

openGL绘制机器人

这是一个用OpenGL语言绘制的一个机器人,其可以实现行走,招手等基本动作。

2010-06-17

空空如也

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

TA关注的人

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