
C++
文章平均质量分 91
leogray
这个作者很懒,什么都没留下…
展开
-
异常基础、以及异常处理框架资料整理
一、C++异常相关的基础知识先看这个对于项目中错误的管理,在看下面的异常介绍:http://blog.youkuaiyun.com/feiyinzilgd/article/details/6677255基础知识,介绍的很详细:http://blog.youkuaiyun.com/TanXiangHao/article/details/3085352把结构化异常转为C++异常:http://haohamaru.原创 2012-05-26 22:58:44 · 991 阅读 · 0 评论 -
深度探索C++对象模型笔记(一)
好书需要多看,每次都能看到或领悟到新东西。再一次看此书,记录一些自己的理解。1、加上封装后的布局成本(指的是与C的对比)答案是,在virtual没有参与的情况下,C++的封装没有增加成本。C++在布局以及存取时间上的主要而外负担是由virtual引起的,包括:virtual function机制(runtime binding)virtual base class (解决多继承原创 2013-06-14 15:17:01 · 1210 阅读 · 0 评论 -
windows、C++、MFC、Qt项目除错笔记
项目做了不少了,期间解决的问题估计光靠脚趾头和手指头是数不过来了,因此专门记录,有点懒,能记多少是多少好了。 刚好今天解决了两个蛋疼的问题,就先记着,之后再补补以前的好了。1.首先问题的现象是程序的Release版本崩溃了(Debug没有崩溃),崩溃的位置位于两个CString赋值,CString这货说实话,用了MFC这么久还真没怎么深究过,只依稀记得这货可动态改变缓冲区大小,且是通过原创 2013-12-03 16:53:32 · 1559 阅读 · 0 评论 -
面向对象之子程序的设计及防御编程_代码大全笔记(三)
创建子程序的正当理由降低复杂度;引入中间,易懂的抽象(一堆的if,switch等,肯定不如一个GeName()来的易懂);避免代码重复;支持子类化(类派生)隐藏顺序(处理顺序执行事情的代码,可以封装到子程序中)隐藏指针操作(指针的可读性差,且容易出错)提高可移植性简化复杂的布尔判断(复杂的bool判断放入函数中,利用具有概括性的名原创 2012-12-24 13:15:48 · 785 阅读 · 0 评论 -
面向对象之类的设计_代码大全笔记(二)
类的基础是抽象数据类型。抽象数据类型(ADT)是数据和对这些数据操作的集合。此“数据”为泛指,可以是窗体,文件,链表,汽车,飞机,人等。类还支持继承和多态,因此可以认为,抽象数据类型 + 继承 + 多态 = 类任何东西首先展示给人的都是外表,类需要一个良好的接口。(这里的接口主要是指类提供的public函数的集合)1.合理的抽象类的接口为隐藏具体实现而提供一种抽象,此接原创 2012-12-12 17:46:02 · 866 阅读 · 0 评论 -
面向对象之数据抽象_代码大全笔记(一)
代码大全里有句话:“在一种语言上编程”的程序员将他们的思想限制于“语言直接支持的那些构件”。如果语言工具是初级的,那么程序员的思想也是初级的。“深入一种语言去编程”的程序员首先决定他要表达的思想是什么,然后决定如何使用特定语言提供的工具来表达这些思想。俗一点的说就是,软件开发,重要的是思想,语言仅是工具。有了好的创意,好的方案和架构,可以选择各种语言来实现。OOP离不开数据抽象,为了更原创 2012-11-23 06:08:25 · 1429 阅读 · 0 评论 -
变量_代码大全笔记(三)
test原创 2013-09-29 14:15:53 · 1269 阅读 · 0 评论 -
深度探索C++对象模型笔记(七)
站在对象模型的尖端1、TemplateTemplate Instantiation当编译器看到template class声明时,实际上什么反应也没有,template class中的数据成员,必须通过template class的某个实体来操作。比如,我们可以这样写:Point :: Status s;//Status是Point的一个枚举类型但不能这样写:Point原创 2013-07-03 18:28:12 · 918 阅读 · 0 评论 -
深度探索C++对象模型笔记(六)
Runtime SemanticsC++的困难之一,就是不容易从代码看出来表达式的复杂,一个类似if(yy == xx.getValue())的简单式子,有可能经历操作符重载,转换运算符-》if( yy.operator == ( xx.getValue.operator Y() ));这些都由编译器暗中进行。1、对象的构造和析构一般而言,我们会把object尽可能放置原创 2013-07-01 14:30:30 · 1062 阅读 · 0 评论 -
深度探索C++对象模型笔记(五)
Semantics of Construction,Destruction,and copy考虑如下abstract base class声明:class Abstract_base{public:virtual ~Abstract_base() = 0;virtual void interface() const = 0;virtual const char* mumbl原创 2013-06-28 18:22:33 · 1060 阅读 · 0 评论 -
Win32多线程程序开发笔记
一、核心对象创建线程之后,一般我们都能拿到两个重要的值,一个是HANDLE,大部分与线程相关的API都需要它。另一个是线程ID,线程的ID是一个全局变量,用于独一无二表现系统某个线程。类似于AttachThreadInput()和PostThreadMessage()就需要用到线程ID。但是为了安全防护的缘故,我们不能根据ID获取到HANDLE。HANDLE被称为核原创 2013-07-12 17:47:34 · 1178 阅读 · 0 评论 -
深度探索C++对象模型笔记(四)
Function语意学(The Semantics of Function)1、Member的各种调用方式Nonstatic Member Functions(非静态成员函数)C++的设计准则之一就是:非静态成员函数至少必须和一般的非成员函数有相同的效率,也就是说:float magnitude3d(const Point3d* _this){ }flo原创 2013-06-20 16:36:38 · 1252 阅读 · 0 评论 -
深度探索C++对象模型笔记(三)
Data 语意学class X { };class Y : public virtual X { };class Z : public virtual X { };class A : public Y, public Z{ };sizeof X 的结果为1 //翻译者在visual C++ 5.0上的执行结果 1sizeof Y的结果为8 //4sizeof Z原创 2013-06-18 18:17:33 · 1130 阅读 · 0 评论 -
深度探索C++对象模型笔记(二)
1、Default Constructor的构建操作C++standard:对于class X ,如果没有任何user-declared constructor,那么会有一个default constructor 被暗中(implicitly)声明出来........一个被暗中声明出来的default constructor将是一个trivial(浅薄而无能,没啥用的)constructo原创 2013-06-14 17:02:27 · 1509 阅读 · 0 评论 -
C++实现自己的插件框架 基于QtCreator源码裁剪
QtCreator2.5.2插件系统裁剪(requiresQt4.7.4 orlater)前言:一般的系统(非插件系统),在发布之后如果还需要修改,必须重新编译后发布。然而我们总有一些特殊的需求,要求已发布的系统能够动态的修改,而插件系统,可以很好的解决这个问题。实现插件系统首先要预先定义好系统的扩展接口,插件由其他开发人员根据系统预定的接口编写扩展功能。插件都是以一个独立文件的形式出现的。系原创 2015-04-13 15:17:06 · 7620 阅读 · 4 评论