10 2013 档案

windows的消息大全(收集)
摘要:WM_NULL0x0000WM_CREATE0x0001WM_DESTROY0x0002WM_MOVE0x0003WM_SIZEWAIT0x0004WM_SIZE0x0005WM_ACTIVATE0x0006WM_SETFOCUS0x0007WM_KILLFOCUS0x0008WM_SETVISIBLE0x0009WM_ENABLE0x000AWM_SETREDRAW0x000BWM_SETTEXT0x000CWM_GETTEXT0x000DWM_GETTEXTLENGTH0x000EWM_PAINT0x000FWM_CLOSE0x0010WM_QUERYENDSESSION0x0011WM_ 阅读全文

posted @ 2013-10-22 08:52 AAAAAApple 阅读(337) 评论(0) 推荐(0)

C中的一些好玩的事(一)转
摘要:关于除以2和向右移位的性能分析我有如下三行代码:1234inta = 8;intret = a/2;ret = a >> 1;现在讨论上面两种实现除以2方式的性能,我们有如下伪汇编代码:12345678910111213inta = 8;013B143E mov dword ptr [a],8 \\ 将8赋值为变量aintret = a/2;013B1445 mov eax,dword ptr [a] \\ 将a的值赋值给eax013B1448 cdq \\ 双字转换为4 字(把EAX 中的字的符号扩展到EDX 中去)013B1449 sub eax,edx \\ 用eax减去ed 阅读全文

posted @ 2013-10-18 16:25 AAAAAApple 阅读(223) 评论(0) 推荐(0)

C++ 温故而知新(三)
摘要:inline, static, constructor三种函数都不能带有virtual关键字。inline是编译时展开,必须有实体;static属于class自己的,也必须有实体;virtual函数基于vtable(内存空间),constructor函数如果是virtual的,调用时也需要根据vtable寻找,但是constructor是virtual的情况下是找不到的,因为constructor自己本身都不存在了,创建不到class的实例,没有实例,class的成员(除了public static/protected static for friend class/functions,其余无 阅读全文

posted @ 2013-10-14 15:19 AAAAAApple 阅读(200) 评论(0) 推荐(0)

C++温故而知新(二)
摘要:在初步了解到前面的关于类的第一个函数构造函数之后。关于构造函数的权限和使用方法,作用之后,在这里接下来研究C++的第二个特色那就是虚函数,研究虚函数的作用、内存中分分配状态、继承、安全性等一系列的问题,我们将这些问题一个一个分解开来1.虚函数作用 C++中加入虚函数,是由于多态泛型变成的考虑,函数的重载和虚函数是实现多态的主要途径,实现晚绑定机制,在编译的时候不知道会调用哪个 直到运行的时候才加载正确的地址2.含有虚函数类的内存大小和位置 如果有虚表指针,那么地址应该和对象地址是一致的 如果有虚函数:内存大小=成员变量内存大小+padding大小+虚表个数*4字节(pS:如果从两个类继承,.. 阅读全文

posted @ 2013-10-14 10:27 AAAAAApple 阅读(188) 评论(0) 推荐(0)

C++的内存分布(一)转
摘要:如何计算类对象占用的字节数?一个空类的话1个字节。这是为了保证n个连续空类声明时,变量地址有偏移,防止变量覆盖。非空类的话用关键字sizeof计算。如果手工计算就相当麻烦,光padding就一堆规则了。而且有些额外信息比如虚函数(多个虚函数也只产生一个vptr指针)等等。一个类成员 ,当有虚函数时,有以下成分:各个数据成员,数据对齐产生的间隙,一个虚函数表的 "指针"(无虚不存在)。构造函数不能用 memset(this, 0, sizeof(*this))) 初始化。原因就是每个类里面除了数据成员之外 ,还有一个虚函数表指针 。memcpy另一个同类型类的实例内容过去倒是 阅读全文

posted @ 2013-10-14 09:24 AAAAAApple 阅读(255) 评论(0) 推荐(0)

C++ 温故而知新(一)
摘要:最近偶尔不经意的翻起了曾经的C++ ,它是多么的熟悉又是多么的陌生看到类的第一类函数就是构造函数,看到他的默认类型是public,我在想能不能将其变成private类型,然后想为什么要把变成private,有什么作用么?在以前书中好像曾经提到过类的构造函数好像是公共类型的,一般构造函数虽然可以设置为公共函数但是不可以被外界显示调用,这是一个很奇葩的事吧,我个人认为让构造函数私有化,不能自己自动生成类的对象,主要目的还是让创建对象在类中自己实现,不能在外部实例化,又想了想,这种功能到底会在什么场合会用上呢?而在单实体模式中,我也可以用到私有构造函数publicclassA{privateA(){ 阅读全文

posted @ 2013-10-14 09:02 AAAAAApple 阅读(191) 评论(0) 推荐(0)

C++反射机制模拟
摘要:c++classstringserializationbindinghibernate反射这个特性在C++中是没有的。所谓反射,自己的认为就是通过一个名字就可创建、调用、获取信息等一系列的操作,这个在脚本语言里面是比较常见的,COM组件也类似,知道个ID名,就可以做很多的工作了。看看JAVA中的描述:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为JAVA语言的反射机制。JAVA反射机制主要提供了以下功能:在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对 阅读全文

posted @ 2013-10-13 15:21 AAAAAApple 阅读(763) 评论(0) 推荐(0)

导航