专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅
1.XML DOM是什么  迄今为止,我们一直将 XML 作为这样一种工具,用它描述数据的结果是可供人阅读的文档。其实, XML 最令人称赞的功能恐怕要算是它表现信息结构的能力,即文档各个部分之间的关系以及它们如何组织成为一个具有确定意义的整体--正如数据库中的表能够描述各部分数据的关系。如结构良好规则和更为严格的 DTD 定义所指出的, XML 文档内各个元素之间不是简单的前后次序关系,而是具有严格的嵌套、依赖关系。 XML 文档作为一个具有确定意义的信息整体,其部分语义正是通过这种结构关系得以体现。  在 DOM 下,程序所面对的XML文档不是一个文本... [阅读全文] [PDF]
什么是XML对象模型?XML对象模型是一个对象集,可以使用这个对象集来访问或处理存储在XML文档中的数据。XML文档构成一颗树,树上的每一个元素可以看作是一个节点,具有不同属性和方法的对象代表了树和它的节点,每个节点包含文档中的实际数据。如何访问树中的节点?可以通过象脚本来访问树中的节点。这些对象是在解析器装载并解析XML文档时由XML解析器创建的。通过ID值可以引用树,或文档对象。在下面的例子中,MyXMLDocument是文档的对象的ID值,使用文档对象的属性和方法可以访问树的根和子节点对象。根,或文档元素,是最顶层的节点,子节点从根上扩展开形成XML... [阅读全文] [PDF]
RDS 的目的是通过 Internet Information Server 这样的媒介来访问和更新数据源。编程模型则指定为完成这个目的所必需的活动序列。对象模型指定其方法和属性影响编程模型的对象。RDS 提供执行以下动作序列的途径: 指定在服务器上被调用的程序,并获得通过客户端调用该程序的方式(代理)。(RDS.DataSpace)调用服务器程序。将参数传递给标识数据源及所要发布的命令的服务器程序。(代理或 RDS.DataControl)服务器程序从数据源获得 Recordset 对象(一般通过使用 ADO)。可选择在服务器上处理 Recordset ... [阅读全文] [PDF]
(声明:本文参考了《深度探索c++对象模型》这本书,我连例子都和此书一样, 如有人认为是偷的话,还请各位原谅,^_^) 经历过从c到c++的人,一定想知道c++编译器是如何安排类的成员的.这里我 大概的作一下介绍,并有一些代码供你进行测试,希望对大家有点作用吧. 其实这里的标题或许有点大了,简单的说,类的非static成员是按照声明的顺序 存放在内存区的,而类的static成员和一般的static变量的存储格式一样.我不从 简单的东西入手了,直接从一个相对复杂的多重继承的例子入手.看下面的代码: class point2d { public: int _x... [阅读全文] [PDF]
我们已经知道,对象是类的实例。对象是属于某个已知的类。因此,定义对象之前,一定要先定义好该对象的类。下面简单的介绍对象的定义。  对象的定义格式  对象在确定了它的类以后,其定义格式如下:  <类名><对象名表>  其中,<类名>是待定的对象所属的类的名字,即所定义的对象是该类类型的对象。<对象名表>中可以有一个或多个对象名,多个对象名时用逗号分隔。<对象名表>中,可以是一般的对象名,还可以是指向对象的指针名或引用名,也可以是对象数组名。如:  tdatedate1,date2,*pdate,da... [阅读全文] [PDF]
前言   本文通过观察对象的内存布局,跟踪函数调用的汇编代码。分析了c++对象内存的布局情况,虚函数的执行方式,以及虚继承,等等。  写这篇文章源于我在论坛上看到的一个贴子。有人问vc使用了哪种方式来实现虚继承。当时我写了一点代码想验证一下,结果发现情况比我想象的要复杂。所以我就干脆认真把相关的问题都过了一遍,并记录成本文。  我对于c++对象模型的知识主要来自于lippman的书《inside the c++ object model》,中译版为候捷翻的《深度探索c++对象模型》,中英版我都看过,不过我还是推荐中译版,因为中译版的确翻得不错,而且候捷加入... [阅读全文] [PDF]
下面我们来看虚继承。首先看看这c020类,它从c010虚继承:}struct c010{ c010() : c_(0x01) {} void foo() { c_ = 0x02; } char c_;};struct c020 : public virtual c010{ c020() : c_(0x02) {} char c_;};  运行如下代码,查看对象的内存布局:print_size_detail(c020)  结果为:the size of c020 is 6the detail of c020 is c0 c2 45 00 02 01  很明显... [阅读全文] [PDF]
关于《深度探索C++对象模型》停顿了半个月,今天继续啃这个骨头,我的学习进入了第四章,函数的语意学。先做个复习C++支持三种成员函数:静态、虚、和非静态。每一种函数的调用方式都不同,当然他们的作用也会有区别,一般来说我们只要掌握根据我们的需要正确的使用这三种类型的成员函数便可以了,至于内部是如何运做的我们可以不知。但是《深度探索C++对象模型》正是让我们对这些不知道的东西进行深度探索的一本书。通过前面的学习,我想我知道了一些以前不知道的东西,但是感觉并没有提高多少,也许是我对此书的学习还停留在一个比较肤浅的层次上吧。我想我应该会抽时间再看几遍。有些跑题了,... [阅读全文] [PDF]
第一章:关于对象(Object Lessons)    读完这一章使我想到了一个很久以前看到的一个笑话,编写一个HELLO WORLD的程序,随着水平和职务的不一样,程序代码也随着变化。当初看时完全当作笑话来看,现在看来写此笑话的人水平不一般。如果要使你的代码能够最大限度的适应不同的运行环境,和最大限度的复用,则在设计和编写的过程中需要考虑的问题很多,因此代码已变的不在具有C语言的简洁,高效。而牺牲了这些优势换来的是更好的封装。当然如果你只是要打印Hello World则不必这样做了。    以C++的思维方式解决问题,对于对C语言已经很熟悉的人来说会很不... [阅读全文] [PDF]
我们现在还在和构造函数打交道,以前写程序时怎么根本没有考虑过构造函数的事情呢?原来编译器为我们做了这么多的事情,我们都不知道.,要想完全搞明白,看来还需要一段时间.我们继续向下走,进入一个新的章节.每当雷神看完一章后,总是期盼下一章节,因为这意味又一个新的里程开始了.对于这本书更是感觉强烈,因为全书总共才7章.    在第三章一开始,雷神就吃了一惊..书上给出了一个例子: class X{}; class Y:public virtual class X{}; class Z:public virtual class X{}; class A:public... [阅读全文] [PDF]
第一章:关于对象(Object Lessons)    读完这一章使我想到了一个很久以前看到的一个笑话,编写一个HELLO WORLD的程序,随着水平和职务的不一样,程序代码也随着变化。当初看时完全当作笑话来看,现在看来写此笑话的人水平不一般。如果要使你的代码能够最大限度的适应不同的运行环境,和最大限度的复用,则在设计和编写的过程中需要考虑的问题很多,因此代码已变的不在具有C语言的简洁,高效。而牺牲了这些优势换来的是更好的封装。当然如果你只是要打印Hello World则不必这样做了。    以C++的思维方式解决问题,对于对C语言已经很熟悉的人来说会很不... [阅读全文] [PDF]
雷神跌跌撞撞的读完了《深度探索C++对象模型》的第一章,虽然还是有些疑惑,但是已经感到收获很大。按照朋友的说法,第一章是一个概括的介绍,具体的细节会在以后的章节阐述,如果没有通读本书,第一章还是比较不容易理解的。雷神听过之后信心倍增,也不在有初看此书时的“世界末日”的感觉了(在第2篇雷神感到学了近一年的C++,居然水平如此之差),并且通过自己的努力,还是摸到了些门道,所以让我们继续快乐的出发,踏上深度探索C++对象模型的旅程。记住我们在第一篇的小文《坚持不懈,直到成功》,这可是获得成功的不二法门。    第二章主要讲的的构造函数语意(Semantics),... [阅读全文] [PDF]
介绍    多态是一种威力强大的设计机制,允许你继承一个抽象的public接口之后,封装相关的类型,需要付出的代价就是额外的间接性--不论是在内存的获得,或是在类的决断上,C++通过class的pointer和references来支持多态,这种程序风格就称为\"面向对象\".    大家好,雷神关于《深度探索C++对象模型》笔记终于又和大家见面了,速度慢的真是可以。好了不浪费时间了,直接进入主题。    这篇笔记主要解决了几个常常被人问到的问题。    1、C++支持多重继承吗?    2、结构和类的区别是什么?    3、如何设计一个面向对象的模型? ... [阅读全文] [PDF]
史列因:我刚看了你写的“深度探索C++对象模型(1)”,感觉很不错。不过我有一个建议:你说“谁知第一章便如此的难以消化,已经反复读了3遍,还是有些夹生”是很自然的。第一章是一个总览,如果你能全看懂,后面的就没什么看的必要了。第一章的内容后面都有详细介绍,开始只要有个大概印象就可以了。这本书中很多内容都是前后重复的。我建议你先不管看懂看不懂,只管向后看,之后再从头看几遍,那样效果好得多。    我想史列因说的应该是一种非常好的阅读方式,类似《深度探索C++对象模型》这样的技术书籍,需要的是理解,和学习英文不同,不能靠死记硬背,如果出现理解不了的情况,那你不妨... [阅读全文] [PDF]
关于《深度探索C++对象模型》停顿了半个月,今天继续啃这个骨头,我的学习进入了第四章,函数的语意学。先做个复习C++支持三种成员函数:静态、虚、和非静态。每一种函数的调用方式都不同,当然他们的作用也会有区别,一般来说我们只要掌握根据我们的需要正确的使用这三种类型的成员函数便可以了,至于内部是如何运做的我们可以不知。但是《深度探索C++对象模型》正是让我们对这些不知道的东西进行深度探索的一本书。通过前面的学习,我想我知道了一些以前不知道的东西,但是感觉并没有提高多少,也许是我对此书的学习还停留在一个比较肤浅的层次上吧。我想我应该会抽时间再看几遍。有些跑题了,... [阅读全文] [PDF]
我们现在还在和构造函数打交道,以前写程序时怎么根本没有考虑过构造函数的事情呢?原来编译器为我们做了这么多的事情,我们都不知道.,要想完全搞明白,看来还需要一段时间.我们继续向下走,进入一个新的章节.每当雷神看完一章后,总是期盼下一章节,因为这意味又一个新的里程开始了.对于这本书更是感觉强烈,因为全书总共才7章.    在第三章一开始,雷神就吃了一惊..书上给出了一个例子: class X{}; class Y:public virtual class X{}; class Z:public virtual class X{}; class A:public... [阅读全文] [PDF]
上一篇我们对合成确省的构造函数做了一个了解,这一篇我们继续看看构造函数这个有趣的东西. Copy Constructor是什么?我们经常看到代码中有一些这样的函数调用方式X(X&) (“X of X ref”). 这个函数用用户自定义类型作为参数,那它的参数的构造便是由Copy Constructor负责的. 可见这个玩意非常重要,实际上Copy Constructor是由编译器自动合成的,不需要你去作任何事情,但编译器都做了些什么呢?我们的问题出来了。    我们有三种情况需要用一个对象的内容作为另一个类对象的初值.也就是需要编译器来为我们自动合... [阅读全文] [PDF]
一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。Inside the C++ Object Model虽然是一本好书,然而,书的篇幅多一些,又和具体的VC++关系小一些。因此,从篇幅和内容来看,译者认为本文是深入理解C++对象模型比较好的一个出发点。 这篇文章以前看到时就觉得很好,旧文重读,感觉理解得更多一些了,于是产生了翻译出来,与大家共享的想法。虽然文章不长,但时间有限,又若干次在翻译时打盹睡着,拖拖拉拉用了小一个月。 一方面因本人水平所限,另一方面因... [阅读全文] [PDF]
很多人看过《深度探索C++对象模型》,但不一定都能解释清楚下面的小程序,可以试试看。 不过无论你能不能解释,都不妨碍你使用C++,,www. #include <iostream>using namespace std;class a {};class b{};class c:public a{virtual void fun()=0;};class d:public b,public c{virtual void fun();};class e: public d{int test;};void d::fun() { };class f:public... [阅读全文] [PDF]
如果一个对象很小,寄存器可以放得下,一般是通过寄存器返回的,这个寄存器一般是EAX,但是如果对象足够大,以至于寄存器放不下,那么编译器是如何处理这个对象的传递和放回的呢? code: #include "stdafx.h" struct big { char buf[100]; int i; // long d; } B, B2; big bigfun(big b) { b.i = 100; return b; } int main(int argc, char* argv[]) { B2 = bigfun(B);... [阅读全文] [PDF]
1 共20条 分1页