- 博客(13)
- 收藏
- 关注
转载 虚析构函数与非虚析构函数问题!
class A{public: virtual ~A() { cout }};class B:public A{public: virtual ~B() { cout }};int main(){ A*a = new B(); delete a; return 0;}这种情况下,输出结果我们都知道,
2012-07-20 11:54:33
461
转载 C++对象的内存分布和虚函数表
c++中一个类中无非有四种成员:静态数据成员和非静态数据成员,静态函数和非静态函数。 1.非静态数据成员被放在每一个对象体内作为对象专有的数据成员。 2.静态数据成员被提取出来放在程序的静态数据区内,为该类所有对象共享,因此只存在一份。 3.静态和非静态成员函数最终都被提取出来放在程序的代码段中并为该类所有对象共享,因此每一个成员函数也只能存在一份代码实体。在c+
2012-07-20 11:14:36
381
原创 虚基类相关知识
虚基类的知识点整理:几个注意点:(1)如果在虚基类中定义了带有参数的构造函数,且没有定义默认形式的构造函数,则在整个继承过程中,所有直接或间接的派生类都必须在构造函数的成员初始化表中列出对虚基类构造函数的调用;(2)建立一个对象时,如果这个对象中含有从虚基类继承来的成员,则虚基类的成员是由最远派生类的构造函数通过调用虚基类的构造函数进行初始化的,该派生类的其他基类对虚基类的调用构造函数则被忽略
2012-07-19 17:22:01
1034
转载 Windows消息机制 理解
Windows操作系统最大的特点就是其图形化的操作界面,其图形化界面是建立在其消息处理机制这个基础之上的。如果不理解Windows消息处理机制,肯定无法深入的理解Windows编程。可惜很多程序员对Windows消息只是略有所闻,对其使用知之甚少,更不了解其内部实现原理,本文试着一步一步向大家披露我理解的Windows消息机制。可以说,掌握了这一部分知识,就是掌握了Windows编程中的神兵利器,
2012-06-21 14:19:48
450
转载 .h头文件 .lib动态链接库文件 .dll 动态链接库
(1).h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的。附加依赖项的是.lib 不是.dll 若生成了DLL ,则肯定也生成 LIB文件如果要完成源代码的编译和链接,有头文件和lib就够了。如果也使动态连接的程序运行起来,有dll就够了。在开发和调试阶段,当然最好都有。.h .lib .dll三者的关系是:H文件 作用是:声明函数接口 DLL文件 作用
2012-06-07 13:47:31
762
转载 “永动企鹅”寻找新动力——腾讯:自己与自己的战争.
已经拥有2万员工的腾讯公司,目前面临着大公司病的困扰,新的组织架构变革已在酝酿之中。 (贺友保/CFP/图)狂飙突进13年后,作为中国最大互联网公司的腾讯已从4000人膨胀到了2万人,业务线庞大到内部人也很难弄清的地步,对QQ的依赖与由此产生的内耗,深重地拖累了企鹅的步伐。被称为“行业公敌”的腾讯,在业内几乎所向披靡,如今却遭遇一个最为强劲的敌人,那就是:自己。一场新的大变革,正在中国
2012-05-17 19:41:32
7810
转载 互联网行业产品梳理
1 导言 历时一个多月,完成了对各大互联网公司产品线的梳理,今天写个总结。 对所梳理的互联网公司的要求是有较完整的产品线或者有平台级的产品,包括谷歌、微软、亚马逊、雅虎、Facebook、百度、腾讯、阿里巴巴、新浪、360等。 梳理的时候是从用户需求、产品定位、产品功能、产品界面、竞品分析、产品对公司战略的价值、盈利模式这几个角度来分析的。写的时候才
2012-05-05 16:29:00
1290
转载 合成析构函数和析构函数
今天看《c++ primer》的时候,突然看到合成析构函数这个名词,对析构函数了解的多点,对合成析构函数则了解的不多。析构函数特点:1.整个类只有一个,即不能重载;2.没有形参;3.没有返回值;4.不能被继承(继承的是成员变量和成员函数,个人理解严格说这些构造函数,析构函数不能称之为“函数”,因为不符合函数定义的特征,所以构造函数,析构函数不能被继承)5.可以手动调用(不理
2012-05-03 21:05:15
1980
转载 4种强制类型转换
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cas
2012-05-03 16:03:28
471
转载 vector向量容器——STL Introduction
vector介绍:vector容器是一个线性结构,用3个指针存放向量的起始字节位置、当前最后一个元素的末尾字节和整个容器所占的内存空间的末尾字节。如下图所示,3个指针变量分别为:M_start、M_finish、M_end_of_storage.查看大图图 vector容器的数据结构vector容器在尾端插入和删除元素,算法时间复杂度为O(1)常数阶,其
2012-05-02 16:31:41
358
转载 vector的reserve和resize
vector 的reserve增加了vector的capacity,但是它的size没有改变!而resize改变了vector的capacity同时也增加了它的size!原因如下: reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添加新的对象之前,不能引用容器内的元素。加入新的元素时,要调用push_back()/insert()函数。 r
2012-05-02 16:15:52
363
转载 胜者树与败者树
胜者树和败者树都是完全二叉树,是树形选择排序的一种变型。每个叶子结点相当于一个选手,每个中间结点相当于一场比赛,每一层相当于一轮比赛。 不同的是,胜者树的中间结点记录的是胜者的标号;而败者树的中间结点记录的败者的标号。 胜者树与败者树可以在log(n)的时间内找到最值。任何一个叶子结点的值改变后,利用中间结点的信息,还是能够快速地找到最值。在k路归并排序中经常用到。
2012-04-28 16:29:12
482
转载 _stdcall 与 _cdecl
几乎我们写的每一个WINDOWS API函数都是__stdcall类型的,首先,需要了解两者之间的区别: WINDOWS的函数调用时需要用到栈(STACK,一种先入后出的存储结构)。当函数调用完成后,栈需要清除,这里就是问题的关键,如何清除?? 如果我们的函数使用了_cdecl,那么栈的清除工作是由调用者,用COM的术语来讲就是客户来完成的。这样带来了一个棘手的问题,不同的编
2012-04-28 16:27:10
259
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人