- 博客(21)
- 资源 (50)
- 问答 (1)
- 收藏
- 关注
原创 从汇编看c++中的多态
在c++中,当一个类含有虚函数的时候,类就具有了多态性。构造函数的一项重要功能就是初始化vptr指针,这是保证多态性的关键步骤。构造函数初始化vptr指针下面是c++源码:class X {private: int i;public: X(int ii) { i = ii; } virtual void s...
2013-05-19 15:07:00 166
原创 js如何获取file控件的完整路径
获取file控件的完整路径,参看下面链接:http://www.scscms.com/article/2011-10/281419694.html
2013-05-15 17:31:00 521
原创 javascript中Date对象与函数
参看下面链接http://www.dreamdu.com/javascript/object_date/#constructor
2013-05-13 15:51:00 142
原创 论c++中对象的内存布局
对象的内存布局就是计算对象所占用的内存大小,对象的大小只包含数据成员,类成员函数是执行代码,不属于对象的数据成员。在不讨论类的继承,以及虚函数的时候。一个对象的大小的计算公式一般为:对象的大小 = sizeof(数据成员1) + sizeof(数据成员2) + ... + sizeof(数据成员n)。但是,即便在这种情况下,仍然有3中特殊情况不满足这个公式:1 空类:空类...
2013-05-12 21:10:00 83
原创 从汇编看c++中临时对象的析构时机
c++中,临时对象一旦不需要,就会调用析构函数,释放其占有的资源;而具名对象则是与创建的顺序相反,依次调用析构函数。c++源码:class X {public: int i; int j; ~X() {} X() {} };int main() { X x1; X(); x1.i = 1...
2013-05-12 19:18:00 189
原创 从汇编看c++中参数对象和局部对象的析构顺序
下面是c++的源码: class X { public: int i; int j; ~X() {} }; void f(X x) { X x1; x.i = 1; x.j = 2;
2013-05-12 19:02:00 132
原创 从汇编看c++的默认析构函数
c++中,如果没有为一个类提供析构函数,那么编译器会为这个类提供默认的析构的函数。由于析构函数的功能和构造函数相反,因此和默认的构造函数类似,编译器也会提供无用的默认的析构函数,和非无用的析构函数。两者的分析情况一样(对于默认的构造函数分析,请参看《从汇编看c++的默认构造函数》)。并且编译器会提供非无用的默认析构函数情形和默认构造函数类似,只有第一条不同:...
2013-05-12 16:20:00 289
原创 从汇编看c++的默认operator=操作
从汇编看c++的默认operator=操作 在c++中,如果没有定义operator=操作,编译器会提供一个默认的operator=操作。由于operator=操作和拷贝构造函数的功能类似,都执行拷贝操作。因此,编译器也分提供无用的默认operator=操作和非无用的默认operator=操作。并且什么时候提供非无用的默认operator=操作和无...
2013-05-12 16:01:00 227
原创 从汇编看c++中的默认拷贝函数
《c++编程思想》上说一个类如果没有拷贝函数,那么编译器就会自动创建一个默认的拷贝函数。下面就让我们看一下真实的情况。首先看一个简单的类X,这个类没有显示定义拷贝构造函数。c++源码如下:class X {private: int i; int j;};int main() { X x1;//先定义对象x1 X x2 =...
2013-05-12 15:24:00 99
原创 从汇编看c++中的const常量
书上说对于const类型的复杂结构,比如struct,class,数组等,一定会分配储存空间,并且不能发生常量折叠。而对于基本的数据类型,在一般情况下并不分配存储空间,只是记录到符号表里面,除非对这个变量取值或者用extern声明。下面来看这一种情况: c++源码: int main() { const int i...
2013-05-11 20:31:00 188
原创 可见性和生命期的区别
变量的可见性(即作用域)和生命期既有区别,又有联系。 一个变量在程序的某处没有可见性,但生命期任然可以存在,比如局部静态变量的可见性在它所在的函数里面,在函数外部不可访问,但是它的生命期确是整个程序的运行期间;而一个变量生命期结束,它也就没有了可见性,就像局部变量,随着栈空间的释放,它也就不存在了,所以外部无法访问。 决定一个变量...
2013-05-11 20:02:00 109
原创 从汇编看c++中的变量类型
全局变量的生命期和可见性是整个程序的运行期间,下面就来用汇编来看一下实际情况:c++源码:int i = 2;//全局变量int main() { int j = i;}下面是汇编代码:PUBLIC ?i@@3HA ; i_DATA SEGMENT?i@@3HA ...
2013-05-11 18:52:00 131
原创 从汇编看c++函数的默认参数
在c++中,可以为函数提供默认参数,这样,在调用函数的时候,如果不提供参数,编译器将为函数提供参数的默认值。下面从汇编看其原理。下面是c++源码:int add(int a = 1, int b = 2) {//参数a b有默认值 return a + b;}int main() { int c= add();//不提供参数 }下...
2013-05-07 01:59:00 199
原创 从汇编看c++中的默认构造函数
c++中,如果为一个类没有明确定义一个构造函数,那么,编译器就会自动合成一个默认的构造函数。下面,通过汇编程序,来看一下其真实情况。c++中的源程序:class X {private: int i;};int main() { X x;} 上面的类X没有定义构造函数,仅仅有一个int i。下面为其汇编程序: ...
2013-05-05 22:37:00 184
原创 从汇编看c++中的static关键字
c++中的static关键字可以修饰全局变量,局部变量和类成员数据(当然还有类的成员函数,但是这里只讨论static修饰变量的情况)。对于static修饰全局变量的情况,和单纯的全局变量类似,生命期存在于整个程序执行期间,在程序加载后,第一条程序语句执行之前就已存在,只是编译器限制它只有文件作用域(即只能在本文件访问)。因此,static修饰的全局变量等价于只有文件作用域的全局变量。...
2013-05-05 19:59:00 427
原创 从汇编看c++中的引用和指针
在c++中,引用和指针具有相同的作用,都可以用来在函数里面给变函数外面对象或者变量的值,下面就来看他们的原理。首先是引用情形下的c++源码:void add(int a, int b, int&c) { c = a + b;}int main() { int a = 1; int b = 2; int c = 0...
2013-05-05 19:01:00 102
原创 从汇编看c++的extern关键字
在c++中,extern关键字用来声明变量和函数,在声明函数的时候,有和没有extern的效果一样,即下面两条语句具有同样的效果:extern void fun();void fun(); 但是对于变量,有和没有extern就有区别,当有extern时,只是告知编译器存在这个变量,编译器并不为该变量分配存储空间,即真正的声明;若没有extern,则在声明的同时,...
2013-05-05 18:19:00 172
原创 vs2010里面的ipch文件和.sdf文件是什么
参看下面的连接 http://blog.sina.com.cn/s/blog_707a4cbf0100r5jq.html
2013-05-05 12:14:00 510
Mac OS X and iOS Internals:To the Apple’s Core.pdf
2020-11-17
Ecma-262规范
2020-11-17
AdvanceAppleDebugging_v0.9.1_SourceCode
2020-11-17
Unicode Standrad
2015-09-24
Git书籍两本打包
2015-09-24
elementary functions
2015-09-24
由于axis2的三本英文书籍
2015-09-24
C89以及Rational
2014-11-26
linux只能连接无密码wifi,无法连接有密码wifi
2015-09-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人